我的文字是這樣的:PHP preg_match_all匹配最接近的值
[if-abc]content of abc[/if] [if-def]content of def[/if]
我想匹配:
[if-abc]content of abc[/if] and then [if-def]content of def[/if]
,但我目前的功能整個事情相匹配。我怎樣才能使它所以它的閉合[/如果]標籤
$m = null;
preg_match_all('/\[if-([a-z-]*)\](.*)\[\/if\]/', $source, $m);
這工作的,當多個條件都存在在同一行上,除了第一次出現匹配。
正則表達式不是此任務的正確工具。改爲解析文本。 – KingCrunch
它似乎工作得很好,什麼是我應該解析的原因? – nick
因爲遲早你會面臨問題,你不能很容易地解決問題,特別是因爲你會忘記事情並引入安全問題。這是相同的原因,爲什麼在HTML上應用正則表達式是一個壞主意(等等))。 – KingCrunch