我正在開發模板系統並遇到一些問題。Preg_match_all與嵌套匹配
該計劃是在其中創建帶有[@tags]的HTML文檔。 我可以只使用str_replace函數(我可以循環槽全部更換更多鈔票),但我想按這個遠一點;-)
我想允許嵌套的標籤,並允許參數與每個標籤:
[@title|You are looking at article [@articlenumber] [@articlename]]
我想獲得與preg_match_all結果如下:
[0] title|You are looking at article [@articlenumber] [@articlename]
[1] articlenumber
[2] articlename
我的腳本將拆分|參數。 從我的腳本的輸出將是這樣的:
<div class='myTitle'>You are looking at article 001 MyProduct</div>
我遇到的問題是,我不是跟正則表達式exprerienced。我的paterns結果幾乎是我想要的,但有嵌套params問題。
\[@(.*?)\]
將從articlenumber停在。
\[@(.*?)(((?R)|.)*?)\]
是更喜歡它,但它沒有抓住articlenumber; https://regex101.com/r/UvH7zi/1
希望有人能幫助我!提前致謝!
我相信是時候使用一個合適的html解析器,比如http://simplehtmldom.sourceforge.net/;)下面是關於pcre遞歸模式的總結,但是它會很快失去作用http:// www.rexegg.com/regex-recursion.html。 –