我试着做以下使用正则表达式(Java的replaceAll):Java的正则表达式匹配方括号
**Input:**
Test[Test1][Test2]Test3
**Output**
TestTest3
总之,我需要删除方括号包括在方括号内的一切。
我想这一点,但它不工作:
\\[(.*?)\\]
你能帮忙吗?
谢谢
腰带
我试着做以下使用正则表达式(Java的replaceAll):Java的正则表达式匹配方括号
**Input:**
Test[Test1][Test2]Test3
**Output**
TestTest3
总之,我需要删除方括号包括在方括号内的一切。
我想这一点,但它不工作:
\\[(.*?)\\]
你能帮忙吗?
谢谢
腰带
你可以试试这个正则表达式:
\[[^\[]*\]
和空
更换Demo
样品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);
感谢@Rizwan,它的工作原理是+1,即使您不需要承受痛苦! –
@sash很高兴知道它为你工作,而不必介意痛苦!只要源是一个生成的:)你也可以从regex101.com生成 –
你原来的模式对我的作品:
String input = "Test[Test1][Test2]Test3";
input = input.replaceAll("\\[.*?\\]", "");
System.out.println(input);
输出:
TestTest3
注意,你不需要括号内的括号内。如果您计划在每对括号之间捕获内容,那么您会使用它,在您的情况下您不需要这些内容。让他们在那里没有错,只是没有必要。
演示在这里:
谢谢蒂姆。 +1为你。这个作品,但@Rizwan很快。 –
VTC,缺乏MCVE其中模式失败。 http://ideone.com/wf5YMT –
您是否打算设置_nested_括号,或者将所有内容都放在最顶层? –
@TimBiegeleisen顶级的一切。谢谢 –