我試圖獲取兩個大括號之間的內容或Smarty標記。我想,只有Smarty的函數變量,忽略if
的等正則表達式preg_match PHP
下面是樣本串標籤:
{{$variable|lower}}
[亦宜]
{{$variable|escape:javascript}}
[亦宜]
{{$variable|str_replace:"search":"replace"}}
[亦宜]
{{if $test eq "test"}}
[應當NOT是墊高等教育委員會]
{{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);
這隻會得到「變量|轉義」。
請幫助正確的正則表達式。
感謝
這是什麼你正在努力實現?這可能比嘗試重新設計已經非常糟糕的Smarty更好。 – 2012-08-07 14:29:07
@Michael我希望我能+10 – DaveRandom 2012-08-07 14:29:41
@DaveRandom我的兩個最大的編程遺憾是圍繞着Smarty構建的。 – 2012-08-07 14:30:49