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面试题集锦
Mar 08 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
ini_set的用法介绍
Jan 07 PHP
php截取字符串函数分享
Feb 02 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
PHP Echo字符串的连接格式
Mar 07 PHP
php操作access数据库的方法详解
Feb 22 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
Nginx下ThinkPHP5的配置方法详解
Aug 01 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
Yii redis集合的基本使用教程
Jun 14 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
一次编写,随处运行
2006/10/09 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
使用python编写监听端
2018/04/12 Python
Python3几个常见问题的处理方法
2019/02/26 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
ORACLE第二个十问
2013/12/14 面试题
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
如何理解transaction事务的概念
2015/05/27 面试题
团队精神演讲稿
2013/12/31 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
工作建议书范文
2014/05/13 职场文书
学习之星事迹材料
2014/05/17 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
Nginx配置Https安全认证的实现
2021/05/26 Servers
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技