我在学习过程中正在使用正则表达式做一些实验。

输入为:I am ironman and I was batman and I will be superman
我想匹配单词batman以外的所有单词

我尝试了[^(batman)]+,但它与字符串中任何位置的字符a,b,m,n,t不匹配

我该如何实现?

最佳答案

几种方法是可能的:

负前瞻断言(?!...)(不跟):

\b(?!batman\b)\w+

与捕获组(您必须仅考虑捕获组1):
\b(?:batman\b|(\w+))

为什么您的模式不起作用:

您编写了[^(batman)],但字符类只是没有顺序的字符集合,您无法在其中描述子字符串。和[^abmnt()]一样

07-26 01:00