2013-08-18 73 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关于方括号令人难以置信的世界。

相关问题