【发布时间】:2012-12-23 22:36:56
【问题描述】:
我的文字是这样的:
[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]
但我当前的功能匹配整个事情。我怎样才能使它匹配关闭 [/if] 标记的第一次出现
$m = null;
preg_match_all('/\[if-([a-z-]*)\](.*)\[\/if\]/', $source, $m);
除非在同一行中存在多个条件,否则此方法有效。
【问题讨论】:
-
正则表达式不是此任务的正确工具。改为解析文本。
-
它似乎工作得很好,我应该解析的原因是什么?
-
因为迟早你会遇到问题,你不能那么容易地解决,特别是因为你会忘记事情并引入安全问题。同样的原因,为什么在 HTML 上应用正则表达式是一个坏主意(等等;))。
-
感谢您的想法,感谢它
标签: php regex preg-match preg-match-all