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);
}
ベストアンサー1
最も簡単な方法は、全てバランスが取れているかどうかに関係なく、文字列から括弧を削除します。
String replaced = "(4+5)+6".replaceAll("[()]", "");
バランスを正しく処理するには、解析 (または、限られた深さにしか一致しない非常に醜い RE、または繰り返し正規表現置換による「巧妙さ」) が必要です。ほとんどの場合、このような複雑さはやりすぎです。機能する可能性のある最も単純なもので十分です。