2013-08-18 103 views
3

如何找到[[]]之間的字符串?搜索答案後,我發現下面的方法,但我找不到[[]]的正則表達式,既沒有爲{{}}在[[]]和{{}}之間尋找字符串的正則表達式

我想要做的是找到例如[[abc]]XXXXXXXXXX[[def]],並且將abcdef保存爲ArrayList。

String s = "[[abc]]XXXXXXXXXX[[def]]"; 
Pattern p = Pattern.compile("[[(.*?)]]") 
Matcher m = p.matcher(s); 
if (m.find()) { 
    System.out.println(m.group(i)); // => "abc","def" 
} 
+2

它們是否可以包含嵌套和/或轉義的括號/括號? –

+0

您需要轉義'[',因爲它們是正則表達式的特殊字符。 – Amber

+1

@黃色或使用[[[] [[](。*?)[]] []]':P – HamZa

回答

4

必須加倍逃脫開口的方括號(你可以做閉幕相同),因爲它們被用來定義字符類:

Pattern p = Pattern.compile("\\[\\[(.*?)]]"); 

(正好與大括號一樣的,即用於量詞)

你可以閱讀這個fabulous post關於方括號令人難以置信的世界。

相關問題