2つの中括弧またはSmartyタグの間にコンテンツを取得しようとしています。を無視して、smarty関数のみの変数を取得したいif
。
文字列タグのサンプルは次のとおりです。
{{$variable|lower}}
[一致する必要があります]
{{$variable|escape:javascript}}
[一致する必要があります]
{{$variable|str_replace:"search":"replace"}}
[一致する必要があります]
{{if $test eq "test"}}
[一致してはいけません]
{{section name=foo start=10 loop=20 step=2}}
[一致してはいけません]
私がこれをするなら
preg_match_all('/{{\$?(\w+?[\W\w]*?)}}/',$str,$matches)
すべてを角かっこで囲みます。
preg_match_all('/{{\$?(\w+?\W*?\w*?)}}/',$str,$matches);
これは「変数|エスケープ」のみを取得します。
正しい正規表現を手伝ってください。
ありがとう