日期:2014-05-20  浏览次数:20690 次

java中正则表达式的问题
现在又一组数据:str=[{"adada":111,"ad21":211,"aada2":[{"aaa":100}]}];
我想去掉最外围的这个中括号,我的正则表达式怎么写呢?
str=str.replaceAll("^\\[").replaceAll("$\\]");这些写只能把第一个[替换,最后一个]替换不掉,不知道有别的方法吗(正则方式)?

------解决方案--------------------
这明明是json串,你非得用正则来解决。。。
另外楼主的代码str=str.replaceAll("^\\[").replaceAll("$\\]");可以直接跑通么?
写了下,应该通了,涉及到贪婪匹配和非贪婪匹配。

String s=":str=[{\"adada\":111,\"ad21\":211,\"aada2\":[{\"aaa\":100}]}];";
s=s.replaceAll("^(.*?)\\[","$1");
System.out.println(s);
s=s.replaceAll("(.*)\\](.*?)$","$1$2");
System.out.println(s);

------解决方案--------------------
你的$放错地方了吧,这样
str=str.replaceAll("^\\[","").replaceAll("\\]$","");