我刚刚学习使用正则表达式,它看起来有点复杂。正则表达式获取括号之间的字符串
我试图解析字符串中的Java:
new Array(new Array('1','Hello'),new Array('2','World (New) Again'),new Array('3','Now'));
我所要的输出最终成为这些比赛:
'1','Hello'
'2','World (New) Again'
'3','Now'
我尝试了一些模式,但尽我所能得到的是我得到:
'1','Hello'
'2','World (New
) Again'
'3','Now'
这是我的代码:
Pattern pattern2 = Pattern.compile("([^\\(]*[']*['][^\\)]*[']*)");
s = "new Array(new Array('1','Hello'),new Array('2','World (New) Again'),new Array('3','Now'));";
Matcher matcher = pattern2.matcher(s);
while(matcher.find()){
String match = matcher.group(1);
System.out.println(match);
}
对于语法分析,正则表达式是不是最好的工具。你的情况可能是可行的,但非常脆弱。你应该实现你自己的解析器。 – Mena 2014-10-03 12:38:27
“我尝试了一些模式,”你试过什么?并且您正在尝试计算哪些正则表达式不适合的平衡圆括号。正如@Mena所说,以某种方式解析字符串 – 2014-10-03 12:38:28