本文實例講述了PHP實現正則表達式分組捕獲操作。分享給大家供大家參考,具體如下:
經過測試,發現php正則表達式獲取分組捕獲是從$0開始,而平時工作中JavaScript中的正則是$1..$9
在提取項目代碼中的漢字時,因為當時操作速度很快(趕時間),很擔心當時.properties的文件{\d}的數字順序搞錯了:
1、可能從{1}開始,而不是從{0}開始
2、可能跳著寫了,比如第一個是{0}第二個需要替換的地方卻寫著{2}
因為使用人工手動操作的,所以這種情況是難以避免,只能說減少誤操作。寫完了,得再檢查一遍,這個遇到困難了,二三千行的代碼,用眼睛一行一行查,那的比較累了,而且還不一定能檢查出來。一多就容易出錯,而且行與行之間靠的太近了,字又太小…
突然想起來,覺得php可以節省一點時間,讀取文件,然后將關鍵的地方標紅…
然后就開始了:php讀取文件,然后逐行的讀取,使用正則表達式匹配符合{\d}的行,然后將{\d}的地方使用紅色進行重點的標記,之后人工去查看每一行是能是符合規則。代碼不對,卻很受用,至少省了用眼睛去一個一個檢查的時間:

這樣一眼掃過去,就能很清楚的看出每一行順序是否都寫對了,寫錯了的行,前面有行號,找到相應行再改改.
!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>
相關問題參考文章:
用 PHP 讀取文件的正確方法
掌握 PHP 中的正則表達式(1)
掌握 PHP 中的正則表達式(2)
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- php 正則去掉p> /p> 空格 與p>br/>/p>
- php正則表達式使用方法整理集合
- PHP常用正則表達式精選(推薦)
- PHP正則表達式處理函數(PCRE 函數)實例小結
- PHP正則表達式筆記與實例詳解
- PHP中PCRE正則解析代碼詳解
- PHP正則判斷一個變量是否為正整數的方法
- PHP正則驗證字符串是否為數字的兩種方法并附常用正則
- PHP正則匹配到2個字符串之間的內容方法
- PHP正則解析多重循環模板示例
- PHP正則過濾處理微信昵稱中emoji字符的方法
- PHP實現正則匹配所有括號中的內容
- PHP使用正則表達式實現過濾非法字符串功能示例
- PHP簡單實現正則匹配省市區的方法
- phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
- PHP利用正則表達式實現手機號碼中間4位用星號(*)替換顯示功能
- 史上最全的PHP正則表達式(手機號需要加上177-***)
- PHP正則之正向預查與反向預查講解與實例