寻求仅接受Unicode字母、空格和数字的正则表达式(现有正则仅移除阿拉伯特殊字符)
解决方案:匹配Unicode字母、空格和数字的正则表达式
你之前的正则[^-ۿ ]仅覆盖了阿拉伯语相关的Unicode字符范围,所以只能移除阿拉伯特殊字符,无法适配所有语言的字母和数字。
要实现仅保留任意Unicode字母、空格和数字的需求,可以利用C#正则支持的Unicode类别匹配,直接使用以下代码:
text = Regex.Replace(text, @"[^\p{L}\p{N} ]+", "");
正则说明:
\p{L}:匹配全球所有语言的Unicode字母(比如中文汉字、英文大小写、阿拉伯字母、日文假名等)\p{N}:匹配所有Unicode数字(包括阿拉伯数字0-9、中文一二三四、罗马数字等):匹配普通空格(如果需要支持制表符、换行符等空白字符,可以替换为\s)[^...]:取反匹配,即匹配不在指定集合内的所有字符,替换为空后就只保留了需要的内容
内容的提问来源于stack exchange,提问作者ghaith alserhan
相关产品推荐
相关产品推荐

