PHP正則解析多重循環(huán)模板示例
本文實(shí)例講述了PHP正則解析多重循環(huán)模板。分享給大家供大家參考,具體如下:
$str = "客戶您好,為您推薦以下項(xiàng)目:(crm{項(xiàng)目2:項(xiàng)目名稱} (crm{項(xiàng)目3:項(xiàng)目名稱}crm) crm)以及(crm{項(xiàng)目1:項(xiàng)目名稱}crm)"; $start = '(crm'; //循環(huán)開始標(biāo)記 $end = 'crm)'; //循環(huán)結(jié)束標(biāo)記 //循環(huán)標(biāo)記,需要轉(zhuǎn)移的符號(hào),前面需要加入轉(zhuǎn)義符 '\' $need_escape = array('^', '$', '(', ')', '.', '[', ']', '|', '*', '?', '+', '/', '{', '}'); foreach($need_escape as $val) { if(strpos($start, $val) !== FALSE)//存在需要轉(zhuǎn)義的符號(hào) { $escape = '\\'.$val; $start = str_replace($val, $escape, $start); } if(strpos($end, $val) !== FALSE)//存在需要轉(zhuǎn)義的符號(hào) { $escape = '\\'.$val; $end = str_replace($val, $escape, $end); } } /*---------------------------------- * 正則解析出【沒有子循環(huán)】的【循環(huán)】 * 【沒有子循環(huán)】:不包含循環(huán)開始標(biāo)記 * 【循環(huán)】:被循環(huán)標(biāo)記包含(開始標(biāo)記、結(jié)束標(biāo)記) * ---------------------------------*/ //$pattern = '/\(crm((?!\(crm).)+crm\)/U'; $pattern = '/'.$start.'((?!'.$start.').)+'.$end.'/U'; preg_match_all($pattern, $str, $matches); echo "<pre>"; print_r($matches); echo "</pre>";
運(yùn)行結(jié)果:
Array
(
[0] => Array
(
[0] => (crm{項(xiàng)目3:項(xiàng)目名稱}crm)
[1] => (crm{項(xiàng)目1:項(xiàng)目名稱}crm)
)
[1] => Array
(
[0] => }
[1] => }
)
)
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php正則表達(dá)式用法總結(jié)》、《php程序設(shè)計(jì)安全教程》、《php安全過(guò)濾技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《php字符串(string)用法總結(jié)》及《php+mysql數(shù)據(jù)庫(kù)操作入門教程》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php 正則去掉<p> </p> 空格 與<p><br/></p>
- php正則表達(dá)式使用方法整理集合
- PHP常用正則表達(dá)式精選(推薦)
- PHP正則表達(dá)式處理函數(shù)(PCRE 函數(shù))實(shí)例小結(jié)
- PHP正則表達(dá)式筆記與實(shí)例詳解
- PHP中PCRE正則解析代碼詳解
- PHP正則判斷一個(gè)變量是否為正整數(shù)的方法
- PHP正則驗(yàn)證字符串是否為數(shù)字的兩種方法并附常用正則
- PHP正則匹配到2個(gè)字符串之間的內(nèi)容方法
- PHP正則過(guò)濾處理微信昵稱中emoji字符的方法
- PHP實(shí)現(xiàn)正則匹配所有括號(hào)中的內(nèi)容
- PHP使用正則表達(dá)式實(shí)現(xiàn)過(guò)濾非法字符串功能示例
- PHP簡(jiǎn)單實(shí)現(xiàn)正則匹配省市區(qū)的方法
- PHP實(shí)現(xiàn)正則表達(dá)式分組捕獲操作示例
- phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
- PHP利用正則表達(dá)式實(shí)現(xiàn)手機(jī)號(hào)碼中間4位用星號(hào)(*)替換顯示功能
- 史上最全的PHP正則表達(dá)式(手機(jī)號(hào)需要加上177-***)
- PHP正則之正向預(yù)查與反向預(yù)查講解與實(shí)例
相關(guān)文章
如何解決CI框架的Disallowed Key Characters錯(cuò)誤提示
本篇文章是對(duì)解決CodeIgniter框架應(yīng)用中,出現(xiàn)Disallowed Key Characters錯(cuò)誤提示的方法,進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07PHP正則匹配中英文、數(shù)字及下劃線的方法【用戶名驗(yàn)證】
這篇文章主要介紹了PHP正則匹配中英文、數(shù)字及下劃線的方法,可用于針對(duì)用戶名的驗(yàn)證操作,需要的朋友可以參考下2017-08-08淺析Mysql 數(shù)據(jù)回滾錯(cuò)誤的解決方法
以下小編為大家介紹一下關(guān)于Mysql數(shù)據(jù)回滾錯(cuò)誤的解決方法。需要的朋友可以過(guò)來(lái)參考下2013-08-08php數(shù)組函數(shù)序列之each() - 獲取數(shù)組當(dāng)前內(nèi)部指針?biāo)赶蛟氐逆I名和鍵值,并將指針移到下一位
each() 函數(shù)生成一個(gè)由數(shù)組當(dāng)前內(nèi)部指針?biāo)赶虻脑氐逆I名和鍵值組成的數(shù)組,并把內(nèi)部指針向前移動(dòng)。返回的數(shù)組中包括的四個(gè)元素:鍵名為 0,1,key 和 value。單元 0 和 key 包含有數(shù)組單元的鍵名,1 和 value 包含有數(shù)據(jù)2011-10-10PHP+MySQL統(tǒng)計(jì)該庫(kù)中每個(gè)表的記錄數(shù)并按遞減順序排列的方法
這篇文章主要介紹了PHP+MySQL統(tǒng)計(jì)該庫(kù)中每個(gè)表的記錄數(shù)并按遞減順序排列的方法,涉及PHP基于PDO操作MySQL數(shù)據(jù)庫(kù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-02-02Fastadmin中用戶登錄時(shí)TOKEN的交互方法
Fastadmin中登錄所有的操作都是基于User用戶表進(jìn)行的$this->auth,如果是別的用戶表需要進(jìn)行相關(guān)的改動(dòng)。API跟Auth這兩個(gè)類庫(kù)里面進(jìn)行系列操作即可。在需要獲取用戶信息的接口,前端需要在調(diào)用api的時(shí)候在頭部傳token,這個(gè)token在登錄的時(shí)候返回給前端。2023-07-07