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