按照你的要求编写的获取最外层大括号内容的Java程序如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GG {
public static void main(String[] args) {
String s="start1 { a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} },start2:{e:false,f:123},start3{g1,g2,g3}";
String regex="start\\d+:?\\s*\\{(.+?)\\}(?=(,start\\d+:?)|$)";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
}
}
Java正则表达式 start\\d+:?\\s*\\{(.+?)\\}(?=(,start\\d+:?)|$)
运行结果
a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good}
e:false,f:123
g1,g2,g3
你这个用json处理更合适
用json
。