我剛剛學習使用正則表達式,它看起來有點複雜。正則表達式獲取括號之間的字符串
我試圖解析字符串中的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