Java 如何在不删除@符号的情况下删除字符串中的所有非字母数字字符

Java 如何在不删除@符号的情况下删除字符串中的所有非字母数字字符,java,regex,Java,Regex,当前正在使用此正则表达式:s.replaceAll([^a-zA-Z0-9],”)但是它会删除我需要的值,例如@、如何在正则表达式中包含这些内容,以使它们不会被空字符串替换 干杯只需将它们添加到正则表达式中即可。请注意,是一个特殊字符,因此必须对其进行转义: String newString = s.replaceAll("[^a-zA-Z0-9!@\\.,]", ""); 因此,如果需要,请将它们包含在角色类中..[^a-zA-Z0-9@.,!]@4castle在技术上是错误的,因为您不必这

当前正在使用此正则表达式:
s.replaceAll([^a-zA-Z0-9],”)但是它会删除我需要的值,例如
@、如何在正则表达式中包含这些内容,以使它们不会被空字符串替换


干杯

只需将它们添加到正则表达式中即可。请注意,
是一个特殊字符,因此必须对其进行转义:

String newString = s.replaceAll("[^a-zA-Z0-9!@\\.,]", "");

因此,如果需要,请将它们包含在角色类中..
[^a-zA-Z0-9@.,!]
@4castle在技术上是错误的,因为您不必这样做。但这并不痛。正则表达式将使用或不使用转义。@chris85请参阅。而且,
regex101
不是Java
[t[esa]
导致
模式语法异常:索引6附近未关闭的字符类
我正在删除以前的注释,因为我认为这偏离了答案的主题。我认为
不需要在字符类中转义,除非这是JAVA专用的。@Andreas哦,感谢您的链接。