gpt4 book ai didi

java - 使用java正则表达式从字符串中删除括号

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:11 25 4
gpt4 key购买 nike

我想使用 Java 正则表达式删除括号,但遇到错误 No group 1 请查看我的代码并帮助我。

public String find_parenthesis(String Expr){
String s;
String ss;
Pattern p = Pattern.compile("\\(.+?\\)");
Matcher m = p.matcher(Expr);
if(m.find()){
s = m.group(1);
ss = "("+s+")";
Expr = Expr.replaceAll(ss, s);
return find_parenthesis(Expr);
}
else
return Expr;
}

这是我的主要内容:

public static void main(String args[]){
Calculator c1 = new Calculator();
String s = "(4+5)+6";
System.out.println(s);
s = c1.find_parenthesis(s);
System.out.println(s);
}

最佳答案

最简单的方法是从字符串中删除所有括号,无论它们是否平衡。

String replaced = "(4+5)+6".replaceAll("[()]", "");

正确处理平衡需要解析(或者只匹配有限深度的非常丑陋的 RE,或者重复正则表达式替换的“聪明”)。对于大多数情况,这种复杂性是多余的;可能可行的最简单的事情就足够了。

关于java - 使用java正则表达式从字符串中删除括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com