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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
深入分析php之面向对象
May 15 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 PHP
php返回json数据函数实例
Oct 09 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
Smarty模板语法详解
Jul 20 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
PHP实现倒计时功能
Nov 16 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python  Django 母版和继承解析
2019/08/09 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
新闻专业个人自我评价
2013/09/21 职场文书
心得体会开头
2014/01/01 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
银行办理业务介绍信
2014/01/18 职场文书
人事助理自荐信
2014/02/02 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
领导班子对照检查材料
2014/09/22 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
检讨书怎么写
2015/05/07 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
Python使用Web框架Flask开发项目
2022/06/01 Python