Javascript 正则表达式不包含某些单词

Javascript 正则表达式不包含某些单词,javascript,java,regex,Javascript,Java,Regex,我正在寻找一个正则表达式,它可以从一个巨大的文本文件中排除下面的单词 @author @Autowired @Override @param @SuppressWarnings 我已经试过了,但没有达到预期效果 @[^(author)(Autowired)(Override)(param)(SuppressWarnings)].* 尝试使用以下正则表达式(使用): 请参见您可以使用负前瞻: @(?!author|Autowired|Override|param|SuppressWarning

我正在寻找一个正则表达式,它可以从一个巨大的文本文件中排除下面的单词

@author
@Autowired
@Override
@param
@SuppressWarnings
我已经试过了,但没有达到预期效果

@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*
尝试使用以下正则表达式(使用):


请参见

您可以使用负前瞻:

@(?!author|Autowired|Override|param|SuppressWarnings)\S+

基本上,它会查找一个
@
,后面是而不是的单词列表,然后它会匹配其后的任何非空白字符。

如果您实际尝试获取文本文件并删除关键字列表中的内容,则翻转脚本,您可能希望找到使用以下语法的用户:
@(author | AutoWired | Override | param | SuppressWarnings)\b
。终端
\b
只是一种预防措施,以避免@authority或其他不可能的文件。

正则表达式中的方括号用于字符类。将字符列表放在方括号中时,这将匹配所列字符之一的一个字符。所以

[author]
匹配一个字符,如果它是
a
h
o
r
t
u
。它不查找单词
作者
。将
^
放在前面也会查找一个不在列表中的字符:

[^author]
只要不是
a
h
o
r
t
u
,就匹配一个字符

但这里的关键是,
[]
不能用于匹配单词或其他序列。以你为例,

@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*

方括号中的部分匹配一个非
a
u
)的字符或方括号中出现的任何其他字符(其中许多字符出现多次,但这不会影响任何内容).

为什么这个标签是
javascript
?@Viswa shmosel有一个很好的观点…为了正确回答这个问题,我们确实需要知道您使用的是什么语言。如果您正在编写Node.js程序来处理Java源代码,那么您应该只有“javascript”标签。如果您正在编写Java程序,您应该有“Java”标签标记。这很重要,因为有些语言支持regex功能,而其他语言不支持。暹罗:非常感谢,感谢你的帮助。非常感谢,感谢你的帮助。
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*