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 相关文章推荐
对盗链说再见...
Oct 09 PHP
杏林同学录(五)
Oct 09 PHP
计算2000年01月01日起到指定日的天数
Oct 09 PHP
MySql中正则表达式的使用方法描述
Jul 30 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
PHP中is_file()函数使用指南
May 08 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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中的字符编码转换函数用法示例
2014/10/20 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
纯JS实现轮播图
2017/02/22 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
vue实现计算器功能
2020/02/22 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
Sanic框架应用部署方法详解
2018/07/18 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
Python的互斥锁与信号量详解
2019/09/12 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
升学宴答谢词
2015/01/05 职场文书
2015年党员承诺书
2015/01/21 职场文书
鼋头渚导游词
2015/02/05 职场文书
医生个人年终总结
2015/02/28 职场文书
教师外出学习心得体会
2016/01/18 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python