Java 替换a-z 0-9旁边字符串中的所有字符,

Java 替换a-z 0-9旁边字符串中的所有字符,,java,android,regex,string,Java,Android,Regex,String,嘿,我想清理一个字符串,只允许它有a-z a-z(还有其他语言,不仅仅是英语),我尝试了ReplaceAll([^a-z 0-9,]),但它正在删除其他语言。。有人能告诉我,我怎样才能只清理特殊字符,而不从中删除表情符号吗?在java中,你可以这样做 yourString.replaceAll("[^\\p{L}\\p{Nd}]+", ""); 正则表达式[^\p{L}\p{Nd}]+匹配所有不是unicode字母或十进制数的字符 如果只需要字符(而不需要数字),可以使用正则表达式[^\\p{

嘿,我想清理一个字符串,只允许它有a-z a-z(还有其他语言,不仅仅是英语),我尝试了
ReplaceAll([^a-z 0-9,])
,但它正在删除其他语言。。有人能告诉我,我怎样才能只清理特殊字符,而不从中删除表情符号吗?

在java中,你可以这样做

yourString.replaceAll("[^\\p{L}\\p{Nd}]+", "");
正则表达式
[^\p{L}\p{Nd}]+
匹配所有不是unicode字母或十进制数的字符

如果只需要字符(而不需要数字),可以使用正则表达式
[^\\p{L}]+
,如下所示:

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

您可以尝试获取a-z和0-9个字符的ASCII码,如果当前字符不是其中之一,请执行您希望的操作。 有关如何获取字符的ascii值,请参阅

编辑:其思想是a-z和0-9字符彼此相邻。因此,只需编写一个简单的函数,返回一个
布尔值
,判断当前字符是否为这些字符之一,如果不是,则替换。
不过,您必须逐个替换

我已经测试了这个正则表达式,并且认为它有效

String result = yourString.replaceAll("[^a-zA-Z0-9]", "");

它将不在集合a-z、a-z或0-9中的任何字符替换为零。

ReplaceAll()
甚至不是PHP函数…使用:
str.ReplaceAll(“[^\\p{L}]+”,”)
你能澄清一下什么是
但它是删除其他语言的意思吗?