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

use*_*539 24 regex

我正在尝试搜索所有出现的"Tom",而不是"Thumb".

我试图寻找

Tom ^((?!Thumb).)*$
Run Code Online (Sandbox Code Playgroud)

但我仍然得到与汤姆拇指相匹配的线条.

ala*_*lan 29

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

 Tom(?!\s+Thumb)
Run Code Online (Sandbox Code Playgroud)

  • 你是什​​么意思'还是得到他们'?还是得到什么?为了让我们为您提供帮助,您需要发布更多代码,一些示例输入和所需输出,以及有关您正在尝试做什么的更多信息.这个正则表达式绝对不会匹配'Tom'后跟'Thumb'(只要你的正则表达式实现支持负向前瞻).所以我不确定"仍然能得到它们"意味着什么. (3认同)

Wik*_*żew 10

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

Tom(?!.*Thumb)
Run Code Online (Sandbox Code Playgroud)

看到这个正则表达式演示

如果你正在寻找整个单词(即.只有在整个单词Tom的右侧没有整个单词时才能匹配整个单词),请使用

Tom(?!.*(?:Thumb|Finger|more words here))
Tom(?!.*Thumb)(?!.*Finger)(?!.*more words here)
Run Code Online (Sandbox Code Playgroud)

另一个正则表达式演示

注意:

  • Thumb - 匹配前导/尾随单词边界
  • \b- 如果有任何0+个字符(取决于引擎包括/不包括换行符号),则是否为未通过匹配的否定前瞻(?!.*Thumb).