通常,为了从String中删除非单词字符,replaceAll可以使用以下方法:
String cleanWords = "some string with non-words such as ';'".replaceAll("\\W", "");
Run Code Online (Sandbox Code Playgroud)
上面返回一个清理过的字符串"somestringwithnonwordssuchas".
但是,如果字符串包含西里尔字符,则会将其识别为非单词,并从字符串中删除.预计西里尔字符将保留.因此问题.
假设字符串具有UTF-8编码,什么是处理删除非单词字符的任务的正确方法,无论语言如何?
试试[^\\p{L}].这应该匹配除字母之外的每个Unicode代码点.
该Pattern班有可能的字符类的相当完整的描述.请注意,默认情况下POSIX字符类仅为ASCII,对您没有多大帮助,您需要使用特定于Unicode的类.
请注意,有一个UNICODE_CHARACTER_CLASS标志可以改变POSIX类的行为以符合Unicode标准的这一部分(基本上使它们等同于它们最接近的Unicode感知等价物).
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |