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仿ZOL分页类代码
Oct 02 PHP
配置php网页显示各种语法错误
Sep 23 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
php session的锁和并发
Jan 22 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 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(8) php 数组
2010/03/05 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
Seajs源码详解分析
2019/04/02 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
历史专业学生的自我评价
2014/02/28 职场文书
商铺租赁意向书
2014/04/01 职场文书
志愿者活动总结
2014/04/28 职场文书
纪律教育月活动总结
2014/08/26 职场文书
殡葬服务心得体会
2014/09/11 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
初中物理教学反思
2016/02/19 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis