Java |防止除下划线以外的任何特殊字符

Java |防止除下划线以外的任何特殊字符,java,regex,string,matcher,Java,Regex,String,Matcher,正如标题所示,我希望检查并阻止字符串中的任何特殊字符。但是,在这样做时,我防止了下划线(可以保留下划线)。有没有办法允许下划线仍然存在 这是我处理支票的方式: Pattern pattern = Pattern.compile("[^a-zA-Z0-9&]", Pattern.CASE_INSENSITIVE); Matcher m = pattern.matcher(String.join("", args));

正如标题所示,我希望检查并阻止字符串中的任何特殊字符。但是,在这样做时,我防止了下划线(可以保留下划线)。有没有办法允许下划线仍然存在

这是我处理支票的方式:

      Pattern pattern = Pattern.compile("[^a-zA-Z0-9&]", Pattern.CASE_INSENSITIVE);
                Matcher m = pattern.matcher(String.join("", args));
                if (m.find()) {
                //Code
                }

您的正则表达式当前允许任何字符、数字和符号(&)。只需将下划线添加到否定集:

Pattern pattern = Pattern.compile("[^_a-zA-Z0-9&]", Pattern.CASE_INSENSITIVE);

你不能在
&
之后添加
\uuu
?经过测试并继续工作。您似乎也在允许。使此大小写不敏感(代价高昂)有什么意义?似乎这个模式已经覆盖了所有的大小写字母;我只是对给定的示例进行了最小的修改。
模式。不区分大小写
是冗余的。