我使用下面的代码从字符串中删除笑脸和特殊字符
String utf8TweetText = tweet.getText();
Pattern unicodeOutliers = Pattern.compile("[^\\x00-\\x7F]",
Pattern.UNICODE_CASE | Pattern.CANON_EQ
| Pattern.CASE_INSENSITIVE);
Matcher unicodeOutlierMatcher = unicodeOutliers.matcher(utf8TweetText );
utf8TweetText = unicodeOutlierMatcher.replaceAll(" "); 这对英语很有效。
但是,如果我的文本是用乌尔都语编写的,如下所示:
تحریک
انصاف نے زینب کے قتل کے خلاف مذمتی قرارداد سندھ اسمبلی میں جمع کرا دی
کراچی:مذمتی قرارداد تحریک انصاف کے رکن…然后用空格替换乌尔都语中的所有文本。
如何删除字符串中的特殊字符,但不删除urdu文本?
发布于 2018-01-11 19:03:41
所有非单词字符都可以与\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_]+", " ");https://stackoverflow.com/questions/48205486
复制相似问题