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
请注意,括号内不需要括号。 如果您计划捕获每对括号之间的内容,则可以使用它,在您不需要的情况下。 把它们放在那里是没有错的,只是没有必要。
在这里演示: