有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

@author
@Autowired
@Override
@param
@SuppressWarnings

我已经试过了,但没有达到预期效果

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

共 (4) 个答案

  1. # 1 楼答案

    要翻转脚本,如果您实际上试图获取文本文件并删除关键字列表中的内容,您可能希望找到使用以下语法的内容:@(author|AutoWired|Override|param|SuppressWarnings)\b。终端\b只是为了避免@authority或其他不可能的东西

  2. # 3 楼答案

    您可以使用负前瞻:

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

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

  3. # 4 楼答案

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

    [author]
    

    匹配一个字符,如果它是ahortu。它不查找单词author。将^放在前面还会查找一个不在列表中的字符:

    [^author]
    

    匹配一个字符,只要它不是ahortu

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

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

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