正则表达式:匹配除完整令牌之外的任

Vin*_*ent 1 php regex pcre

我有以下代码片段,其中我想之间提取代码{foreach}{/foreach}使用正则表达式:

{foreach (...)}
Some random HTML content <div class="">aklakdls</div> and some {$/r/template} markup inside.
{/foreach}
Run Code Online (Sandbox Code Playgroud)

我已经有了:

{foreach [^}]*}
Run Code Online (Sandbox Code Playgroud)

但在那之后我无法匹敌.有没有办法匹配任何东西但是{/ foreach}作为一个整体令牌?请注意,{foreach} {/ foreach}之间的内容也可以包含"{$"代币.

编辑:BaileyP和Tomalak的答案都是正确的,但为了简单起见,我选择了BaileyP的答案.

Pet*_*ley 5

我想出了这个

/(?:{foreach .*?})(.*?)(?:{\/foreach})/gis
Run Code Online (Sandbox Code Playgroud)

RegExr测试