如何匹配除一个单词之外的任何文本

时间:2011-11-25 10:40:32

标签: regex

是否有一种方法可以使用正则表达式来匹配除特定单词或字母字符的特定组合之外的所有字符和符号?

示例:

Hello world! 

Hello是字面值,world可能与Hello Tom!Hello Claudio!等不同。

但是,如果在单词worldTom或其他正则表达式引擎遇到例如or或其他符号组合,则单词world将不匹配。

有了这个:

Hello (.*?)! 

引擎将匹配所有字符...

1 个答案:

答案 0 :(得分:7)

您可以使用lookahead expressions执行此操作:

Hello ((?:(?!or).)*?)!

将匹配Hello后以!结尾且不包含or的任何字符串。

Hello Tom!          // Match
Hello =)(/§  )$(/!  // Match
Hello Sailor!       // No match

如果您只想排除整个(字母数字)字词,可以使用word boundaries

Hello ((?:(?!\bor\b).)*?)!

结果:

Hello Sailor!       // Match
Hello Tom or Jerry! // No match