我有模板引擎。当匹配{if} ... {/ if}块时,内容按{else | elif}条件分割。
但是当内容嵌套{if} ... {/ if}阻止时,{else | elif}条件算法匹配错误的else或elif标记。
也许我有这样的内容;
黑线应该可选,但红线不可选。
这是我原来的匹配模式,但它无法正常工作
/{(else|elif)[\s]*(.*?)[\s]*}/
答案 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按钮才能工作)