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}
展开
 我来答
紫薇参星
科技发烧友

2016-12-13 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3579万
展开全部

按照你的要求编写的获取最外层大括号内容的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
尉穹4w
2016-12-13 · TA获得超过453个赞
知道小有建树答主
回答量:353
采纳率:36%
帮助的人:149万
展开全部
你这个用json处理更合适
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzs丶灬
2016-12-13 · TA获得超过632个赞
知道小有建树答主
回答量:881
采纳率:100%
帮助的人:514万
展开全部
用json
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式