我需要从上一个匹配的最后一个偏移量链接第二个匹配。想象一下我有:
id, name
我将使用preg_match_all()
来捕获id
和name
(逗号分隔),所以我可以使用LIKE THIS:
's* ('w+) 's* (?:,|$)
它与我前面的例子很好用。但如果我这样做:
invalid example
它将匹配example
。在这种情况下,我不想匹配,因为只有当所有数据都匹配时,我才需要接受(在我的正则表达式中不允许使用空格)。
为了解决这个问题,我应该可以使用线锚的开头,LIKE this:
^ 's* ('w+) 's* (?:,|$)
所以我前面的例子现在将不匹配(没错),但我的第一个例子将失败,因为name
将不匹配,一旦它不匹配就是行的开始。
示例:
- CCD_ 6只需要匹配CCD_
- CCD_ 8需要与CCD_ 9和CCD_
will fail
需要失败will, fail too
也需要失败
此处有更多示例
您可以使用此正则表达式来匹配所有输入,后面跟有,
,或者使用preg_match_all
函数匹配输入末尾:
[^,] +.*$(*SKIP)(*F)|('w+)(?=(?:, 'w+)*$)