【问题标题】:Replace spaces in string with regex in Java [duplicate]用Java中的正则表达式替换字符串中的空格[重复]
【发布时间】:2014-09-30 14:25:43
【问题描述】:

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

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

这就是我得到的:

2.       Test Sentence with spaces

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

【问题讨论】:

  • 它对我来说也很好用。这是你的真实代码吗?
  • 您能否在您的编辑器的十六进制模式下查看您的程序 - 也许有一些奇怪的 Unicode 代码点,您认为其中只有空格?
  • 所以,在 HEX 模式下,有“c2 a0 NO-BREAK SPACE”符号...如何替换所有空格?谢谢!

标签: java regex


【解决方案1】:

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

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

输出

[1 space]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    相关资源
    最近更新 更多