匹配一个词但不匹配更大的词
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
字边界
我想要一个正则表达式来匹配 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
字边界