Php 条件的正则表达式

Php 条件的正则表达式,php,regex,preg-match,Php,Regex,Preg Match,我正在构建一个HTML模板系统,我需要允许用户添加如下所示的条件 if条件的示例 ..HTML... [if:UserLevel > 100] ...conditional HTML... [endif] ...More HTML.... 我需要一个匹配的PHP正则表达式 [if:$] $ [endif] 其中$if变量/通配符 preg_match("(\[if:([^]+])\](.*?)\[endif\])is",$data); s修饰符允许输入数据中出现换行 如

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

if条件的示例

..HTML...
[if:UserLevel > 100]
    ...conditional HTML...
[endif]
...More HTML....
我需要一个匹配的PHP正则表达式

[if:$]
   $
[endif]
其中$if变量/通配符

preg_match("(\[if:([^]+])\](.*?)\[endif\])is",$data);
s
修饰符允许输入数据中出现换行

如果捕获匹配项,
$match[1]
将成为条件,
$match[2]
将成为其中的HTML

"/\[if:([^]]+)](.*?)\[endif]/s"
s
修饰符允许输入数据中出现换行

如果捕获匹配项,
$match[1]
将成为条件,
$match[2]
将成为其中的HTML

"/\[if:([^]]+)](.*?)\[endif]/s"
我会照你说的做

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

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

我会照你说的做

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


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

太棒了,我会尽快试用。我试过了,它执行时没有错误,但返回了一个空数组。我可能做错了,我使用了pre_match_all。太棒了,我会尽快尝试。我尝试了这个,它执行时没有错误,但返回了一个空数组。我可能做错了,我使用了pre_match_all。如何提取条件或比赛主体?如何提取条件或比赛主体?