条件的正则表达式


Regular Expression for a condition

我正在构建一个HTML模板系统,我需要允许用户添加如下所示的条件。

if条件的示例;

..HTML...
[if:UserLevel > 100]
    ...conditional HTML...
[endif]
...More HTML....

我需要一个匹配的PHP正则表达式;

[if:$]
   $
[endif]

其中$if变量/通配符。

"/'[if:([^]]+)](.*?)'[endif]/s"

会按照你的要求去做的。

请注意仅使用这样的纯正则表达式进行模板创建并不是一种有效的方法,在某些情况下甚至不起作用。例如,当使用这样的正则表达式进行分段时,不能嵌套这些if语句。

有很多模板语言,我建议你看看其中的一些。(除非你这样做只是为了教育目的。)

preg_match("('[if:([^]+])'](.*?)'[endif'])is",$data);

s修饰符允许在输入数据中有换行符。

如果您捕获匹配,$match[1]将是条件,$match[2]是其中的HTML。