【问题标题】:Using Regex for splitting a string in java [duplicate]使用正则表达式在java中拆分字符串[重复]
【发布时间】:2019-07-17 09:01:39
【问题描述】:

我想用空格分割 java 中的字符串。我知道下面的代码行。

String s[] = str.split("\\\s+");

这里的 split 函数采用必须拆分字符串的正则表达式。所以当我想通过一个或多个空格分割字符串str时,我应该将\s+作为正则表达式传递,那么为什么使用\\\s+呢?

【问题讨论】:

  • 三反斜杠不能在 java 中编译。正确的正则表达式在 java 中是 \\s+,因为需要 1 个反斜杠来转义第二个
  • 您需要使用双反斜杠。反斜杠是 Java 中的特殊符号,必须使用转义字符。对于反斜杠转义字符是双反斜杠

标签: java regex split


【解决方案1】:

这将进行拆分

String s[] = n.split("\\s+");

你不需要第三个斜杠'\' - 你会得到编译错误。
第一个“\”用于转义第二个“\”。用作“\s”的转义字符。

【讨论】:

    【解决方案2】:

    就像 Ismail 所说,您不需要第三个反斜杠。 在你的正则表达式中你想使用\s 所以在Java中你还需要为你的标签转义你的反斜杠。

    解决方案:
    Why does this Java regex cause "illegal escape character" errors?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      相关资源
      最近更新 更多