1

我正在使用自己的 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

我应该改变什么才能让它工作?

谢谢你。

4

0 回答 0