我不确定我是否恰当地表述了这个问题和/或有点过于密集。我有以下正则表达式:
^.*(foobar|bar|abc|xyz)
...我想匹配以上任何一个单词的最后一次出现。最初的量词是贪婪的,所以我会碰到最后一次而不是第一次出现,但是foo
一词是另一个foobar
的尾随子集,所以如果我有这句话one abc two foobar three
,然后小组比赛是bar
,这不是我想要的。应该是foobar
。
答案 0 :(得分:1)
解决方案是在小组之前和之后使用词边界\b
来强制匹配整个词。
^.*\b(foobar|bar|abc|xyz)\b
从文档中:
\ b会在不消耗任何字符的情况下立即在\ w匹配的字符和不与\ w匹配的字符之间匹配(以任何顺序排列)。