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

时间:2013-07-21 02:39:40

标签: java regex

我如何为以下模式编写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)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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)]