Java replaceAll(..)和正则表达式

Java replaceAll(..)和正则表达式,java,regex,string,replaceall,Java,Regex,String,Replaceall,如何删除带括号的文本 String string = "product(version(id),code),user(uid)"; string = string.replaceAll("\\(.*\\)", ""); System.out.println("string= " + string); 当我这样做时,我得到: string= product 但我想得到 string= product,user 致以最良好的祝愿 试试这个: String string = "(product(

如何删除带括号的文本

String string = "product(version(id),code),user(uid)";
string = string.replaceAll("\\(.*\\)", "");
System.out.println("string= " + string);
当我这样做时,我得到:

string= product
但我想得到

string= product,user
致以最良好的祝愿

试试这个:

String string = "(product(version(id),code),use)r(uid)";
StringBuilder sb = new StringBuilder();
    int countOpenPar = 0;
    for (int i=0; i<string.length(); i++) {
      char c = string.charAt(i);

      if( c == '(' ){
        countOpenPar++;
      }else if( c == ')' ){
        countOpenPar-- ;
      }else if( countOpenPar == 0){
        sb.append(c);
      }
    }
    System.out.println("string= " + sb.toString());
String=“(产品(版本(id)、代码)、使用)r(uid)”;
StringBuilder sb=新的StringBuilder();
int countOpenPar=0;

对于(int i=0;iRe使用更合适的dupe关闭。另外,请参阅演示-