-2

我将如何为以下模式编写 java 正则表达式:

"123(1,2),234(1,2),345(1,2),123456(1,2),789(1,2)";

结果应该像这样打印出来:

123
(1,2)
234
(1,2)
345
(1,2)
123456
(1,2)
789
(1,2)
4

2 回答 2

1

使用此正则表达式进行全局匹配:(?<=^|\),)[0-9]+|\([0-9]+,[0-9]+\). 它匹配以“)”开头的一组连续数字或字符串的开头,或格式为(#,#)的序列,其中#是一组连续数字。

于 2013-07-21T03:08:01.920 回答
1

这将做到:

String[] parts = str.split("(?=\\()|(?<=\\)),");

这是一个测试:

public static void main (String[] args) throws java.lang.Exception {
    String str = "123(1,2),234(1,2),345(1,2),123456(1,2),789(1,2)";
    String[] parts = str.split("(?=\\()|(?<=\\)),");
    System.out.println(Arrays.toString(parts)); }
}

输出:

[123, (1,2), 234, (1,2), 345, (1,2), 123456, (1,2), 789, (1,2)]
于 2013-07-21T03:08:36.637 回答