我使用下面的代码从字符串中删除笑脸和特殊字符
تحریک
انصاف نے زینب کے قتل کے خلاف مذمتی قرارداد سندھ اسمبلی میں جمع کرا دی
کراچی:مذمتی قرارداد تحریک انصاف کے رکن…
这对英语很有用。
但是,如果我的文字是这样的urdu:
.descContainer
然后用whitspace替换urdu中的所有文本。
如何从字符串中删除特殊字符但确保它不会删除urdu文本?
答案 0 :(得分:1)
所有非单词字符都可以与\W
速记字符类匹配,为了使其能够识别Unicode,您只需要传递Pattern.UNICODE_CHARACTER_CLASS
(或(?U)
内嵌嵌入式标志选项)到正则表达式编译器:
s = s.replaceAll("(?U)\\W", " ");
请参阅Java online demo。
如果您还需要删除_
char(它被视为单词char),请将\W
和_
添加到字符类中:
s = s.replaceAll("(?U)[\\W_]", " ");
要用单个空格替换1个以上的特殊字符,请在模式后添加+
个量词:
s = s.replaceAll("(?U)[\\W_]+", " ");