我正在使用自己的 PHP 代码将模板文件呈现为 HTML 代码。我需要一个正则表达式来正确解析递归标签,在这个例子中是权限标签。
示例: 模板代码:
<if condition="is_admin">
Show this
<if condition="can_do_this">
Show this
</if>
<if condition="can_do_that">
Show that
</if>
</if>
我想正确捕获每个“if”标签内的内容,当然没有任何嵌套标签问题。
我看到了一个可以在 css 上完美运行的正则表达式:
/{(?:[^{}]+|(?R))*}/sg
但是,当我更改为我的格式时,它不起作用。我已更改为:
/<if condition="(.[^"]*)">(?:(?!<if condition=".[^>]*">|<\/if>)|(?R))*<\/if>/sg
我应该改变什么才能让它工作?
谢谢你。