我正在开发模板系统并遇到一些问题。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。 –