gpt4 book ai didi

java - 删除西里尔 UTF-8 编码字符串中的所有非单词字符

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:37 24 4
gpt4 key购买 nike

通常,为了从字符串中删除非单词字符,可以使用 replaceAll 方法:

String cleanWords = "some string with non-words such as ';'".replaceAll("\\W", "");

上面的代码返回一个干净的字符串"somestringwithnonwordssuchas"

但是,如果字符串包含西里尔字符,它们将被识别为非单词,并从字符串中删除。预计西​​里尔字符将保留。因此问题。

假设字符串具有 UTF-8 编码,无论何种语言,处理删除非单词字符任务的正确方法是什么?

最佳答案

试试 [^\\p{L}]。这应该匹配除字母之外的每个 Unicode 代码点。

Pattern class对可能的字符类有相当详尽的描述。请注意,POSIX 字符类在默认情况下仅支持 ASCII,对您帮助不大,您需要使用特定于 Unicode 的类。

请注意,有 UNICODE_CHARACTER_CLASS flag改变 POSIX 类的行为以符合 this section of the Unicode Standard (基本上使它们等同于最接近的 Unicode 感知等价物)。

关于java - 删除西里尔 UTF-8 编码字符串中的所有非单词字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087479/

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