用于在[[]]和{{}}之间查找字符串的正则表达式

时间:2013-08-18 18:10:45

标签: java regex

如何在[[ ]]之间找到字符串?在搜索答案后,我在下面找到了此方法,但我找不到[[ ]]的正则表达式,{{ }}也没有。

我想要做的是找到,例如[[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"
}

1 个答案:

答案 0 :(得分:4)

你必须双重转义开头方括号(你可以对结束做同样的事情),因为它们用于定义字符类:

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

(与花括号完全相同,用于量词)

你可以阅读这个关于令人难以置信的方括号世界的fabulous post