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

时间:2017-02-07 15:28:52

标签: java android regex string

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

3 个答案:

答案 0 :(得分:1)

您可以尝试获取a-z和0-9个字符' ASCII代码,如果当前字符其中之一,请按照您的意愿行事。 关于如何获取角色的ascii值,请参考here

编辑:这个想法是a-z和0-9字符彼此相邻。因此,只需编写一个简单的函数,返回boolean,无论当前字符是否为其中之一,如果不是,则替换。 尽管如此,你必须逐个替换。

答案 1 :(得分:0)

在java中你可以做到

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

正则表达式[^\p{L}\p{Nd}]+匹配所有不是unicode字母或十进制数字的字符。

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

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

答案 2 :(得分:0)

我已经测试了这个正则表达式和AFAIK它的工作原理......

echo "<option value='$x'>$x</option>";
// passed to PHP ----^^,,^^ What is shown to the user
// they do not necessarily have to be the same thing

它替换任何不在集合a-z,A-Z或0-9中的任何字符。