设为首页 收藏本站
查看: 444|回复: 0

[经验分享] php正则表达式的分组捕获

[复制链接]

尚未签到

发表于 2015-8-30 08:13:11 | 显示全部楼层 |阅读模式
  经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9
  
  在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了:
  1、可能从{1}开始,而不是从{0}开始
  2、可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2}
  因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作。写完了,得再检查一遍,这个遇到困难了,二三千行的代码,用眼睛一行一行查,那的比较累了,而且还不一定能检查出来。一多就容易出错,而且行与行之间靠的太近了,字又太小…
  
  突然想起来,觉得php可以节省一点时间,读取文件,然后将关键的地方标红…
  
  然后就开始了:php读取文件,然后逐行的读取,使用正则表达式匹配符合{\d}的行,然后将{\d}的地方使用红色进行重点的标记,之后人工去查看每一行是能是符合规则。代码不对,却很受用,至少省了用眼睛去一个一个检查的时间:
DSC0000.png
  这样一眼扫过去,就能很清楚的看出每一行顺序是否都写对了,写错了的行,前面有行号,找到相应行再改改.
  
  
   
   1: <!Doctype html>

   2: <html>

   3: <head>

   4: <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=utf-8&quot;>

   5: <title>检测中文替换文字的正确性</title>

   6: </head>

   7: <?php

   8:     $filename = &quot;C:\test.properties&quot;;

   9:     $mode = &quot;r&quot;;

  10:     $file_handle = fopen($filename, $mode);

  11:     $lineNum = 0;

  12:     $pattern = &quot;/{\d}[^{}]+/&quot;;

  13:     if ($file_handle) {

  14:         while (!feof($file_handle)) {

  15:             ++$lineNum;

  16:             $line = fgets($file_handle);

  17:             if (preg_match($pattern, $line)) {

  18:                 $line = preg_replace(&quot;/{\d}/&quot;, &quot;<font color='red'>$0</font>&quot;, $line);

  19:                 echo &quot;行&quot;.$lineNum.&quot;:&quot;.$line.&quot;<br/><br/><br/>&quot;;

  20:             }

  21:         }

  22:     } else {

  23:         echo &quot;文件读取失败&quot;;

  24:     }

  25:     fclose($file_handle);

  26: ?>

  27: </html>
  
  参考问题:

用 PHP 读取文件的正确方法

掌握 PHP 中的正则表达式(1)

掌握 PHP 中的正则表达式(2)
  
  准备趁春节放假那几天再把《精通正则表达式》好好温习温习,深入研究一下php、perl、python中正则的异同点。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106118-1-1.html 上篇帖子: Php 获取xml中的节点值 下篇帖子: PHP 获取当前文件夹的绝对路径
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表