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 相关文章推荐
IIS6的PHP最佳配置方法
Mar 19 PHP
PHP配置文件中最常用四个ini函数
Mar 19 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
php对称加密算法示例
May 07 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
php格式文件打开的四种方法
Feb 24 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 PHP
PHP内存溢出优化代码详解
Feb 26 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使用google地图应用实例
2014/12/31 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
jQuery 选择器理解
2010/03/16 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
python实现对一个完整url进行分割的方法
2015/04/29 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
经典导游欢迎词大全
2014/01/16 职场文书
护士检查书
2014/01/17 职场文书
教师开学感言
2014/02/14 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
教师考察材料范文
2014/06/03 职场文书
医德医风自我评价
2014/09/19 职场文书
小学生交通安全寄语
2015/02/27 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
python的html标准库
2022/04/29 Python