繁体   English   中英

从不包含非拉丁字符的字符串中删除所有特殊字符

[英]Remove all special characters from a string not including non-latin characters

我想从字符串中删除除数字和普通az字符之外的所有特殊字符。

我是这样做的:

text = text.replaceAll("[^a-zA-Z0-9 ]+", "");

这种方式的问题在于它还会删除所有非拉丁字符,如è,é,ê,ë和其他许多字符。

非特殊字符(我想保留的字符)是指所有语言的所有数字和所有字母字符,或者至少尽可能多。

我如何只删除特殊字符?

对于所有数字,您可以尝试\\p{L}对于所有数字,您可以尝试\\p{L} \\p{N}

text = text.replaceAll("[^\\p{L}\\p{N} ]+", "");

我知道你说正则表达式, 但如果番石榴是一个选项

CharMatcher.JAVA_LETTER_OR_DIGIT.retainFrom("èêAAAGRt123")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM