0
我期待提高以下的正則表達式,因爲我現在想匹配嵌套的標籤,以及:遞歸標籤內容
'%{if:\s*"\'([^\']*)\' == \'([^\']*)\'"}((?:(?!{else}|{/endif}).)*){else}((?:(?!{/endif}).)*){/endif}%sei'
這基本上一致:
{if: "'x' == 'y'"}
a
{else}
b
{/endif}
或
{if: "'x' == 'y'"}
c
{/endif}
不過,我想這是在某種方式遞歸,所以嵌套狀態也可以在不破壞任何內容的情況下進行匹配(如果添加了嵌套語句,此時它會中斷)。
有也將是一個類似的表達與!=
。
我發現這個http://www.devnetwork.net/viewtopic.php?f=38&t=102670&sid=02b7c691a2be894336c694700f8f911a#p551340它匹配<div>
標籤,雖然有點不知道該如何去適應它適合我的正則表達式...
更多的上下文請。這樣做的目的是什麼? – Gordon
對不起,我的一些邏輯允許一些最終用戶創建一個模板,以顯示一個可以自定義的區域。我不希望允許PHP,使所有被剝離出來的安全性是
如果限制嵌套一些預定的深度(這可能會或可能不會一個壞主意),你可以將它與正則表達式匹配。否則,你不能。您提供的鏈接與正則表達式的HTML匹配,這是經常使用的,但通常是known是一個壞主意。如果您不想使用其他形式的解析,請考慮匹配最內層的ifs,替換爲某些內容並再次匹配。
來源
2012-05-22 12:10:48