RegExp排除,寻找一个没有跟随另一个的单词

时间:2012-04-29 19:03:42

标签: regex

我正在尝试搜索所有出现的“Tom”,而不是“Thumb”。

我试图寻找

Tom ^((?!Thumb).)*$

但我仍然得到与Tom Thumb匹配的行。

3 个答案:

答案 0 :(得分:26)

你没有说你正在使用什么样的正则表达式,但这应该是一般的:

 Tom(?!\s+Thumb)

答案 1 :(得分:6)

如果您不是在寻找整个单词,可以使用以下正则表达式:

Tom(?!.*Thumb)

请参阅this regex demo

如果您正在寻找整个单词(例如,如果整个单词Tom只有在其右侧没有整个单词Thumb时才能匹配),请使用

\bTom\b(?!.*\bThumb\b)

请参阅another regex demo

请注意:

  • \b - 匹配前导/尾随字边界
  • (?!.*Thumb) - 否定前瞻如果有任何0+个字符(取决于引擎包括/排除换行符号)后跟Thumb,则会失败。

答案 2 :(得分:1)

Tom(?!\s+Thumb)是您搜索的内容。