匹配一个词但不匹配大词

时间:2019-12-16 13:40:20

标签: regex regex-lookarounds

我希望正则表达式匹配rov,但是我对prov的出现次数不感兴趣,因此我需要匹配rov但排除prov

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

我该怎么做?

1 个答案:

答案 0 :(得分:4)

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

然后在左右匹配的0+个单词字符之间匹配rov

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

Regex demo