2011-10-24 104 views
2

我有一個字符串,如23ert[word]45y[li]dfdf[beautiful]adf。我想收集包圍括號[...]的每個單詞到數組或集合中。示例字符串將在數組或集合中具有[word][li][beautiful]如何統計字符串中括號(包括括號)的內容

如何使用正則表達式或任何其他方法來執行此操作?

編輯:當我使用如下方法veru不錯,但是當字符串作爲56 TY [DF]宇] 5689,我想只得到[DF],如何修改代碼

回答

2
static public List<String> collect(String str) { 
    List<String> list = new ArrayList<String>(); 
    Pattern p = Pattern.compile("\\[.+?\\]"); 
    Matcher m = p.matcher(str); 
    while (m.find()) 
     list.add(m.group()); 
    return list; 
} 
+0

+1 for 11秒更快:D – FailedDev

+0

非常感謝你 – pengwang

+0

對不起,我有一個問題你的方法很好,但是當我使用字符串作爲45 [d [12] f],我想得到[12 ],使用你的方法我不能這樣,你能再次幫我嗎?謝謝 – pengwang

2
List<String> matchList = new ArrayList<String>(); 
try { 
    Pattern regex = Pattern.compile("\\[.+?\\]"); 
    Matcher regexMatcher = regex.matcher(subjectString); 
    while (regexMatcher.find()) { 
     matchList.add(regexMatcher.group()); 
    } 
} catch (PatternSyntaxException ex) { 
    // Syntax error in the regular expression 
} 

試試這個。

+0

謝謝! :)這是很好的體育精神 –

+0

對不起,我有一個問題你的方法很好,但是當我使用字符串作爲45 [d [12] f],我想得到[12],使用你的方法我不能這樣,你能再次幫助我?謝謝 – pengwang

+0

@pengwang雖然你可以用普通的表達方式來做到這一點,你是否也想要匹配例如[[[something]]? – FailedDev

相關問題