preg_match不在特定标签之间

时间:2016-04-08 16:25:01

标签: php regex preg-match

我有模板引擎。当匹配{if} ... {/ if}块时,内容按{else | elif}条件分割。

但是当内容嵌套{if} ... {/ if}阻止时,{else | elif}条件算法匹配错误的else或elif标记。

也许我有这样的内容;

example content

黑线应该可选,但红线不可选。

这是我原来的匹配模式,但它无法正常工作

/{(else|elif)[\s]*(.*?)[\s]*}/

1 个答案:

答案 0 :(得分:0)

preg_match_all("/\{\/if}(.*?)\{if \$test3 \}/ms", $input_lines, $output_array);
Echo $output_array[1];

在行动http://www.phpliveregex.com/p/fhf

中查看

(您需要按下preg_match_all按钮才能工作)