Java 仅在第一个匹配的正则表达式位置拆分字符串

Java 仅在第一个匹配的正则表达式位置拆分字符串,java,regex,Java,Regex,我有这个字符串: “123456-A,Bcd,789101-E,Fgh” 我想把它分成:“123456-A,Bcd”和“789101-E,Fgh”。 我怎样才能做到这一点?我应该使用什么regex和split表达式 我发现我可以使用.matches(“.[a-z],\\s[0-9].”)找到“Bcd”后面的逗号。 但是我如何仅在逗号处拆分字符串呢.split(“,\\s”)在所有出现的逗号后加空格进行拆分 我使用JAVA 1.6。您可以在逗号上拆分,该逗号后跟0+空格、6位数字、空格和连字符:

我有这个字符串: “123456-A,Bcd,789101-E,Fgh”

我想把它分成:“123456-A,Bcd”和“789101-E,Fgh”。 我怎样才能做到这一点?我应该使用什么
regex
split
表达式

我发现我可以使用
.matches(“.[a-z],\\s[0-9].”)找到“Bcd”后面的逗号。
但是我如何仅在逗号处拆分字符串呢
.split(“,\\s”)
在所有出现的逗号后加空格进行拆分


我使用JAVA 1.6。

您可以在逗号上拆分,该逗号后跟0+空格、6位数字、空格和连字符:

String[] result = s.split(",\\s*(?=\\d{6} -)");

图案细节

  • -逗号
  • \s*
    -0+空格字符
  • (?=\\d{6}-
    -正向前瞻(一种非消费模式,它匹配的内容不会成为结果的一部分),需要6位数字后跟空格,并且当前位置右侧紧跟
    -

您可以在逗号上拆分,该逗号后跟0+空格、6位数字、空格和连字符:

String[] result = s.split(",\\s*(?=\\d{6} -)");

图案细节

  • -逗号
  • \s*
    -0+空格字符
  • (?=\\d{6}-
    -正向前瞻(一种非消费模式,它匹配的内容不会成为结果的一部分),需要6位数字后跟空格,并且当前位置右侧紧跟
    -

酷!谢谢(Y) 酷!谢谢(Y)如果我的答案是为你工作,请考虑接受(见)。如果我的答案是为你工作,请考虑接受(见)。