匹配一个词但不匹配更大的词

Match a word but not a larger word

我想要一个正则表达式来匹配 rov 但是有一千次 prov 我不感兴趣,所以我需要匹配 rov 但排除 prov.

我试过 /((?!prov).)*(rov)/i,但它仍然匹配单词 prov 中的 rov 部分。我也试过/((?!prov).)*(^rov)/i但是我不能用它,我需要匹配像CreateRov这样的词,我不能使用^\b

我该怎么做?

您可以使用否定前瞻来断言匹配单词边界后右边的内容不是正确的。

然后匹配rov左右匹配0+个单词字符

\b(?!\w*prov)\w*rov\w*\b
  • \b 字边界
  • (?!\w*prov) 负前瞻,断言右边的不是prov
  • \w*rov\w* 匹配 rov 匹配左侧和右侧的 0+ 个单词字符
  • \b 字边界

Regex demo