Java正则表达式匹配方括号

新手上路,请多包涵

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

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

**Output**
TestTest3

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

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

 \\[(.*?)\\]

你能帮忙吗?

谢谢,

窗扇

原文由 Pruthvi Raj Nadimpalli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 743
2 个回答

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

 \[[^\[]*\]

并替换为空

演示

示例 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);

原文由 Mustofa Rizwan 发布,翻译遵循 CC BY-SA 3.0 许可协议

您的原始模式对我有用:

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

输出:

 TestTest3

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

演示在这里:

雷克斯测试仪

原文由 Tim Biegeleisen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题