PHP实现正则表达式分组捕获操作示例


Posted in PHP onFebruary 03, 2018

本文实例讲述了PHP实现正则表达式分组捕获操作。分享给大家供大家参考,具体如下:

经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9

在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了:

1、可能从{1}开始,而不是从{0}开始

2、可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2}

因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作。写完了,得再检查一遍,这个遇到困难了,二三千行的代码,用眼睛一行一行查,那的比较累了,而且还不一定能检查出来。一多就容易出错,而且行与行之间靠的太近了,字又太小…

突然想起来,觉得php可以节省一点时间,读取文件,然后将关键的地方标红…

然后就开始了:php读取文件,然后逐行的读取,使用正则表达式匹配符合{\d}的行,然后将{\d}的地方使用红色进行重点的标记,之后人工去查看每一行是能是符合规则。代码不对,却很受用,至少省了用眼睛去一个一个检查的时间:

PHP实现正则表达式分组捕获操作示例

这样一眼扫过去,就能很清楚的看出每一行顺序是否都写对了,写错了的行,前面有行号,找到相应行再改改.

<!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>

相关问题参考文章:

正则表达式在线生成工具:
http://tools.3water.com/regex/create_reg

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
PHP Mysql编程之高级技巧
Aug 27 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
PHP中的Memcache详解
Apr 05 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
PHP之uniqid()函数用法
Nov 03 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP7数组的底层实现示例
Aug 25 PHP
PHP实现简易图形计算器
Aug 28 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 PHP
php实现解析xml并生成sql语句的方法
Feb 03 #PHP
PHP删除数组中指定下标的元素方法
Feb 03 #PHP
php学习笔记之mb_strstr的基本使用
Feb 03 #PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 #PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 #PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 #PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 #PHP
You might like
非常好用的Zend Framework分页类
2014/06/25 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP常用技巧汇总
2016/03/04 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
实习评语
2013/12/16 职场文书
中学生校园广播稿
2014/01/16 职场文书
消防安全检查制度
2014/02/04 职场文书
房屋出租协议书
2014/04/10 职场文书
空乘英文求职信
2014/04/13 职场文书
教师演讲稿大全
2014/05/16 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书