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源代码
Oct 09 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
php获取汉字首字母的函数
Nov 07 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
php 问卷调查结果统计
Oct 08 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
Yii框架分页技术实例分析
Aug 30 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
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
探究Python中isalnum()方法的使用
2015/05/18 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python3.6数独问题的解决
2019/01/21 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
中学教师请假制度
2014/02/03 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
文化建设工作方案
2014/05/12 职场文书
档案保密承诺书
2014/06/03 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技