时间:2021-05-26
本文实例讲述了PHP实现正则表达式分组捕获操作。分享给大家供大家参考,具体如下:
经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9
在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了:
1、可能从{1}开始,而不是从{0}开始
2、可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2}
因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作。写完了,得再检查一遍,这个遇到困难了,二三千行的代码,用眼睛一行一行查,那的比较累了,而且还不一定能检查出来。一多就容易出错,而且行与行之间靠的太近了,字又太小…
突然想起来,觉得php可以节省一点时间,读取文件,然后将关键的地方标红…
然后就开始了:php读取文件,然后逐行的读取,使用正则表达式匹配符合{\d}的行,然后将{\d}的地方使用红色进行重点的标记,之后人工去查看每一行是能是符合规则。代码不对,却很受用,至少省了用眼睛去一个一个检查的时间:
这样一眼扫过去,就能很清楚的看出每一行顺序是否都写对了,写错了的行,前面有行号,找到相应行再改改.
<!Doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><title>检测中文替换文字的正确性</title></head><?php $filename = "C:\test.properties"; $mode = "r"; $file_handle = fopen($filename, $mode); $lineNum = 0; $pattern = "/{\d}[^{}]+/"; if ($file_handle) { while (!feof($file_handle)) { ++$lineNum; $line = fgets($file_handle); if (preg_match($pattern, $line)) { $line = preg_replace("/{\d}/", "<font color='red'>$0</font>", $line); echo "行".$lineNum.":".$line."<br/><br/><br/>"; } } } else { echo "文件读取失败"; } fclose($file_handle);?></html>相关问题参考文章:
用 PHP 读取文件的正确方法
掌握 PHP 中的正则表达式(1)
掌握 PHP 中的正则表达式(2)
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JS正则表达式非捕获分组用法。分享给大家供大家参考,具体如下:最近在看JsonSQL的时候,通过源码中的一段正则表达式,了解到了什么是非捕获分组以
正则表达式在PHP中的应用在PHP应用中,正则表达式主要用于:•正则匹配:根据正则表达式匹配相应的内容•正则替换:根据正则表达式匹配内容
本文实例讲述了Python正则表达式分组概念与用法。分享给大家供大家参考,具体如下:正则表达式分组分组就是用一对圆括号“()”括起来的正则表达式,匹配出的内容就
本文实例讲述了PHPpreg_match实现正则表达式匹配功能。分享给大家供大家参考,具体如下:preg_match—执行一个正则表达式匹配preg_match
捕获组分为:普通捕获组(Expression)命名捕获组(?Expression)普通捕获组从正则表达式左侧开始,每出现一个左括号"("记做一个分组,分组编号从