我编写简单的模板语言,但嵌套语句有问题。例如我使用 Foreach,这个正则表达式:
preg_match('/\{foreach +\$(.*?)\}(.*?){\/foreach\}/sui', $this->content, $matches);
一切正常,但是当我在 foreach 中嵌套 foreach 时,出现错误。因为正则表达式获取第一个开始标记但第二个结束标记。
{foreach $XY}
{foreach $YX} {/foreach}
{/foreach}
我该如何解决这个问题?谢谢!