Java - 删除所有语言的字符串的所有非单词字符

时间:2014-04-28 20:54:35

标签: java regex punctuation

我需要删除java中单词的所有标点符号我试过这个

    System.out.println("do.,it".replaceAll("[^\\w]", ""));
    System.out.println("сказочники".replaceAll("[^\\w]", ""));

但它不适用于西里尔语或其他语言。我已经尝试过使用

\p{Punct}

但是列表不完整,例如

„ and »

缺少

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式。

 text = text.replaceAll("[^a-zA-Z0-9\\s]", "");

这将删除除空格以外的所有特殊字符。

修改

因为这是一种不同的语言。

假设您必须删除- + ^ . : ,

试试这个text = text.replaceAll("[\\-\\+\\.\\^:,]","");

答案 1 :(得分:1)

不确定java是否支持此功能,但请尝试使用:

"сказочники".replaceAll("\P{wd}+", "")

其中\P{wd}代表任何语言中的任何非单词字符。它与\p{wd}

相反

答案 2 :(得分:0)

我的解决方案似乎是

System.out.println("сказ очники»»«„“‚‘›‹".replaceAll("[^\\p{L}]", ""));