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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
PHP如何编写易读的代码
Jul 10 PHP
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
php 信息采集程序代码
Mar 17 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
laravel5实现微信第三方登录功能
Dec 06 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
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
Python中有趣在__call__函数
2015/06/21 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
python3下pygame如何实现显示中文
2020/01/11 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
工作评语大全
2014/04/26 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js