【发布时间】:2014-10-24 05:12:47
【问题描述】:
我需要链接上一个匹配的最后一个偏移量的第二个匹配。想象一下,我有:
id, name
我将使用preg_match_all() 捕获id 和name(逗号分隔),所以我可以使用LIKE THIS:
\s* (\w+) \s* (?:,|$)
它适用于我之前的示例。但如果我这样做:
invalid example
它将匹配example。而且我不想在这种情况下匹配,因为只有当所有数据都被某些东西匹配时我才需要接受(空格是我的正则表达式中不允许的组)。
为了解决这个问题,我应该可以使用行首锚,LIKE THIS:
^ \s* (\w+) \s* (?:,|$)
所以我之前的示例现在将不匹配(这是正确的),但我的第一个示例将失败,因为 name 将不匹配,一旦它不匹配是行首。
示例:
-
id只需要匹配id; -
id, name需要匹配id和name; -
will fail需要失败; -
will, fail too也需要失败;
【问题讨论】:
标签: php regex preg-match-all