Java 仅在第一个匹配的正则表达式位置拆分字符串
我有这个字符串: “123456-A,Bcd,789101-E,Fgh” 我想把它分成:“123456-A,Bcd”和“789101-E,Fgh”。 我怎样才能做到这一点?我应该使用什么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位数字、空格和连字符:
regex
和split
表达式
我发现我可以使用.matches(“.[a-z],\\s[0-9].”)找到“Bcd”后面的逗号。
但是我如何仅在逗号处拆分字符串呢.split(“,\\s”)
在所有出现的逗号后加空格进行拆分
我使用JAVA 1.6。您可以在逗号上拆分,该逗号后跟0+空格、6位数字、空格和连字符:
String[] result = s.split(",\\s*(?=\\d{6} -)");
看
图案细节
-逗号,
-0+空格字符\s*
-正向前瞻(一种非消费模式,它匹配的内容不会成为结果的一部分),需要6位数字后跟空格,并且当前位置右侧紧跟(?=\\d{6}-
-
String[] result = s.split(",\\s*(?=\\d{6} -)");
看
图案细节
-逗号,
-0+空格字符\s*
-正向前瞻(一种非消费模式,它匹配的内容不会成为结果的一部分),需要6位数字后跟空格,并且当前位置右侧紧跟(?=\\d{6}-
-