用Java中的正则表达式替换字符串中的空格

时间:2014-09-30 14:25:44

标签: java regex

我正在尝试用一个空格替换字符串中的所有空格。我正在尝试这个:

String src = "2.       Test Sentence with     spaces";
String out = src.replaceAll("\\s+", " ");
System.out.println(out);

这就是我得到的:

2.       Test Sentence with spaces

点后的空格没有被替换......为什么?

1 个答案:

答案 0 :(得分:3)

您可以尝试使用Unicode类别:分隔符,空格,并结合空格:

String input = "\u0020\u00A0\u1680\u2000\u2001\t"; //etc. 17 characters
System.out.println(input.replaceAll("[\\p{Zs}\\s]+", " "));

<强>输出

[1 space]

有关Zs类别中的字符列表,请参阅here