我正在寻找一个正则表达式,将排除一个巨大的文本文件/文件中的以下单词。
@author
@Autowired
@Override
@param
@SuppressWarnings我已经尝试过了,但没有像预期的那样工作。
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*发布于 2017-03-06 10:25:13
尝试使用以下正则表达式(使用):
@(?!author|Autowired|Override|param|SuppressWarnings).*请参阅
发布于 2017-03-06 11:13:21
正则表达式中的方括号用于字符类。当您将一组字符放在方括号中时,这与列出的字符之一的one character匹配。所以
[author]匹配一个字符(如果它是a、h、o、r、t或u )。它不查找单词author。将^放在前面还会查找一个不在列表中的字符:
[^author]匹配一个字符,只要它不是a、h、o、r、t或u。
但这里的关键是[]不能用于匹配单词或其他序列。在您的示例中,
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*方括号中的部分匹配一个字符,该字符不是(、a、u或方括号中出现的任何其他字符(其中许多字符出现多次,但这不会影响任何内容)。
发布于 2017-03-06 10:28:42
你可以使用负向先行:
@(?!author|Autowired|Override|param|SuppressWarnings)\S+基本上,它查找后跟该单词列表的@为而不是,然后匹配其后的任何非空格字符。
https://stackoverflow.com/questions/42616535
复制相似问题