正则表达式括号匹配问题
使用正则表达式提取括号内容,此处考虑多重括号的情况,该怎么做?
比如:
table('aa','bb',cc)+('ad.get()',ad.getid(),'ad.getdescription()')
要能提取出来
'aa','bb',cc
'ad.get()',ad.getid(),'ad.getdescription()'
这两部分就可以,怎么写正则,求此方面大神指教!
------解决方案--------------------
其实正则没什么搞不定,只有效率的高低和程度的深浅。。
为了这个专门学了一会,搞定了。。
楼主看看吧
String s="table('aa','bb',cc)+('ad.get()',ad.getid(),'ad.getdescription()')";
Pattern p=Pattern.compile(".*?\\((.*?)(?<!\\()\\)");
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
结果:
'aa','bb',cc
'ad.get()',ad.getid(),'ad.getdescription()'