Java正则表达式匹配方括号

我正在尝试使用正则表达式(java replaceAll)执行以下操作:

**Input:** Test[Test1][Test2]Test3 **Output** TestTest3 

简而言之,我需要删除方括号内的所有内容,包括方括号。

我正在尝试这个,但它不起作用:

 \\[(.*?)\\] 

你能帮忙吗?

谢谢,
窗扇

你可以尝试这个正则表达式:

 \[[^\[]*\] 

并替换为空

演示

Java源代码示例:

 final String regex = "\\[[^\\[]*\\]"; final String string = "Test[Test1][Test2]Test3\n"; final String subst = ""; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); final String result = matcher.replaceAll(subst); System.out.println(result); 

你的原始模式适合我:

 String input = "Test[Test1][Test2]Test3"; input = input.replaceAll("\\[.*?\\]", ""); System.out.println(input); 

输出:

 TestTest3 

请注意,括号内不需要括号。 如果您计划捕获每对括号之间的内容,则可以使用它,在您不需要的情况下。 把它们放在那里是没有错的,只是没有必要。

在这里演示:

Rextester