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 相关文章推荐
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
PHP 引用文件技巧
Mar 02 PHP
PHP的变量类型和作用域详解
Mar 12 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
Oct 17 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 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 求质素(素数) 的实现代码
2011/04/12 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
php 抽象类的简单应用
2011/09/06 PHP
js函数般调用正则
2008/04/08 Javascript
js 字符串操作函数
2009/07/25 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
python面向对象 反射原理解析
2019/08/12 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
答谢会策划方案
2014/05/12 职场文书
拆迁委托协议书
2014/09/15 职场文书
政府会议通知范文
2015/04/15 职场文书
公司酒会致辞
2015/07/30 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js