我想删除除数字和普通a-z字符之外的字符串中的所有特殊字符。
我这样做:
text = text.replaceAll("[^a-zA-Z0-9 ]+", "");
这种方式的问题在于它还会删除所有非拉丁字符,如è,é,ê,ë等等。
非特殊字符(我要保留的字符)是指所有语言的所有数字和所有字母字符,或者至少尽可能多的字符。
我如何只删除特殊字符?
答案 0 :(得分:3)
您可以尝试\p{L}
代表所有数字,\p{N}
代表所有数字:
text = text.replaceAll("[^\\p{L}\\p{N} ]+", "");
答案 1 :(得分:1)
我知道你说正则表达式,但如果番石榴是一个选项:
CharMatcher.JAVA_LETTER_OR_DIGIT.retainFrom("èêAAAGRt123")