gpt4 book ai didi

java - 如何删除特殊字符而不删除另一种语言的文本?

转载 作者:行者123 更新时间:2023-11-30 06:20:46 24 4
gpt4 key购买 nike

我使用下面的代码从字符串中删除笑脸和特殊字符

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(" ");

这对于英语来说非常有用。

但是,如果我的文本是这样的乌尔都语:

تحریک 

انصاف نے زینب کے قتل کے خلاف مذمتی قرارداد سندھ اسمبلی میں جمع کرا دی

کراچی:مذمتی قرارداد تحریک انصاف کے رکن…

然后它将乌尔都语中的所有文本替换为空格。

如何从字符串中删除特殊字符,但确保它不会删除乌尔都语文本?

最佳答案

所有非单词字符都可以与 \W 速记字符类匹配,并且要使其能够识别 Unicode,您只需传递 Pattern.UNICODE_CHARACTER_CLASS 即可。 (或 (?U) 内联嵌入标志选项)到正则表达式编译器:

s = s.replaceAll("(?U)\\W", " ");

请参阅Java online demo .

如果您还需要删除 _ 字符(它被视为单词字符),请将 \W_ 添加到字符类中:

s = s.replaceAll("(?U)[\\W_]", " ");

要将 1 个以上特殊字符替换为单个空格,请在模式后添加 + 量词:

s = s.replaceAll("(?U)[\\W_]+", " ");

关于java - 如何删除特殊字符而不删除另一种语言的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48205486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com