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