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短域名转换为实际域名函数
Jan 17 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
php权重计算方法代码分享
Jan 09 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
PHP实现事件机制实例分析
Jun 26 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
yii中widget的用法
2014/12/03 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
vue组件name的作用小结
2018/05/23 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
python的几种开发工具介绍
2007/03/07 Python
python实现12306火车票查询器
2017/04/20 Python
Python函数和模块的使用总结
2019/05/20 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Python中字符串List按照长度排序
2019/07/01 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
Python对excel的基本操作方法
2021/02/18 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
什么是事务?事务有哪些性质?
2012/03/11 面试题
安全检查管理制度
2014/02/02 职场文书
模具专业自荐信
2014/05/29 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python