【发布时间】:2011-06-02 03:26:03
【问题描述】:
我试图阻止 \G 锚匹配字符串的开头。我只希望它在最后一次正则表达式匹配结束时匹配。
给定以下文本:
Pig, Cow, Goat
fruit: apple, orange, peach, pear
vegetable: Carrot, Lettuce, Cellery
还有这个模式:
(fruit:|\G)([\w]+|[\, ])
我希望它只匹配“fruit:”之后的单词,但我需要它单独捕获每个单词。如果我只是在这个模式的最后加上一个 +,它会匹配“fruit:”之后的所有单词,但它只会捕获“pear”,因为 + 的每次迭代都会踩到最后一个。
这就是问题所在。此模式有效,除了它还匹配“Pig, Cow and Goat”,因为 \G 将匹配最后一个匹配的结尾或整个字符串的开头。如何防止它匹配整个字符串的开头?
我在 PHP 中使用 PCRE,并且一直在使用 Rubular.com 来帮助我进行快速测试。
【问题讨论】: