PHP正則解析多重循環(huán)模板示例
本文實例講述了PHP正則解析多重循環(huán)模板。分享給大家供大家參考,具體如下:
$str = "客戶您好,為您推薦以下項目:(crm{項目2:項目名稱} (crm{項目3:項目名稱}crm) crm)以及(crm{項目1:項目名稱}crm)";
$start = '(crm'; //循環(huán)開始標記
$end = 'crm)'; //循環(huán)結束標記
//循環(huán)標記,需要轉(zhuǎn)移的符號,前面需要加入轉(zhuǎn)義符 '\'
$need_escape = array('^', '$', '(', ')', '.', '[', ']', '|', '*', '?', '+', '/', '{', '}');
foreach($need_escape as $val)
{
if(strpos($start, $val) !== FALSE)//存在需要轉(zhuǎn)義的符號
{
$escape = '\\'.$val;
$start = str_replace($val, $escape, $start);
}
if(strpos($end, $val) !== FALSE)//存在需要轉(zhuǎn)義的符號
{
$escape = '\\'.$val;
$end = str_replace($val, $escape, $end);
}
}
/*----------------------------------
* 正則解析出【沒有子循環(huán)】的【循環(huán)】
* 【沒有子循環(huán)】:不包含循環(huán)開始標記
* 【循環(huán)】:被循環(huán)標記包含(開始標記、結束標記)
* ---------------------------------*/
//$pattern = '/\(crm((?!\(crm).)+crm\)/U';
$pattern = '/'.$start.'((?!'.$start.').)+'.$end.'/U';
preg_match_all($pattern, $str, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
運行結果:
Array
(
[0] => Array
(
[0] => (crm{項目3:項目名稱}crm)
[1] => (crm{項目1:項目名稱}crm)
)
[1] => Array
(
[0] => }
[1] => }
)
)
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《php程序設計安全教程》、《php安全過濾技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php字符串(string)用法總結》及《php+mysql數(shù)據(jù)庫操作入門教程》
希望本文所述對大家PHP程序設計有所幫助。
- php 正則去掉<p> </p> 空格 與<p><br/></p>
- php正則表達式使用方法整理集合
- PHP常用正則表達式精選(推薦)
- PHP正則表達式處理函數(shù)(PCRE 函數(shù))實例小結
- PHP正則表達式筆記與實例詳解
- PHP中PCRE正則解析代碼詳解
- PHP正則判斷一個變量是否為正整數(shù)的方法
- PHP正則驗證字符串是否為數(shù)字的兩種方法并附常用正則
- PHP正則匹配到2個字符串之間的內(nèi)容方法
- PHP正則過濾處理微信昵稱中emoji字符的方法
- PHP實現(xiàn)正則匹配所有括號中的內(nèi)容
- PHP使用正則表達式實現(xiàn)過濾非法字符串功能示例
- PHP簡單實現(xiàn)正則匹配省市區(qū)的方法
- PHP實現(xiàn)正則表達式分組捕獲操作示例
- phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
- PHP利用正則表達式實現(xiàn)手機號碼中間4位用星號(*)替換顯示功能
- 史上最全的PHP正則表達式(手機號需要加上177-***)
- PHP正則之正向預查與反向預查講解與實例
相關文章
發(fā)一個php簡單的偽原創(chuàng)程序,配合商城采集用的
在網(wǎng)上搜了一個偽原創(chuàng)的程序,下下來,結果太令人驚奇的。以前也在為如何將一段文字里的某些詞替換掉而苦惱,原來php有個strtr函數(shù).2010-10-10
PHP用continue跳過本次循環(huán)中剩余代碼的注意點
continue跳轉(zhuǎn)語句用來跳過本次循環(huán)中指定條件的語句,并且繼續(xù)執(zhí)行其他的循環(huán)語句。下面這篇文章主要給大家介紹了關于在PHP中用continue跳過本次循環(huán)中剩余代碼的一個注意點,文中的內(nèi)容比較基礎,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06

