无法在正则表达式中捕获组\ [(。*)\]

时间:2015-01-19 03:34:57

标签: java regex

我写过像\[(.*)\]

这样的正则表达式

之后我想捕捉\[\]内的任何内容 但结果返回失败

例如:
正则表达式\[(.*)\]
字符串测试:\[\sqrt 3\]
期待:\sqrt 3

1 个答案:

答案 0 :(得分:0)

您需要在捕获组中设置.*才能进行非贪婪的匹配。在正则表达式中,您需要再次反斜杠三次才能匹配文字\符号。

String s = "\\[\\sqrt 3\\]";
System.out.println(s);
Matcher m = Pattern.compile("\\\\\\[(.*?)\\\\\\]").matcher(s);
while(m.find())
{
    System.out.println(m.group(1));
}

输出:

\[\sqrt 3\]
\sqrt 3