java如何获取最外层大括号内容,其中可能包含大括号
如"start1{a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd(good):{saygood}},start2:{e:false,f...
如"start1 { a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} },start2:{e:false,f:123},start3{g1,g2,g3}",想要获取start1、start2、start3里面的值,该如何取(最好是正则)?
非json格式,或者问题简单点,
start1 { a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} }
如何正则匹配大括号内的内容a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} 展开
非json格式,或者问题简单点,
start1 { a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} }
如何正则匹配大括号内的内容a:'aaa',b:{b1:'bb1',b2:'bb2'},cc:'cc1',dd (good):{say good} 展开
3个回答
展开全部
按照你的要求编写的获取最外层大括号内容的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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询