是否有一种方法可以使用正则表达式来匹配除特定单词或字母字符的特定组合之外的所有字符和符号?
示例:
Hello world!
Hello
是字面值,world
可能与Hello Tom!
,Hello Claudio!
等不同。
但是,如果在单词world
或Tom
或其他正则表达式引擎遇到例如or
或其他符号组合,则单词world将不匹配。
有了这个:
Hello (.*?)!
引擎将匹配所有字符...
答案 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