2017-03-10 55 views
1

如何刪除帶括號的文本?Java replaceAll(..)和Regular Expressions

String string = "product(version(id),code),user(uid)"; 
string = string.replaceAll("\\(.*\\)", ""); 
System.out.println("string= " + string); 

當我這樣做,我得到:

string= product 

但我想獲得

string= product,user 

最好的問候!

+2

重新關閉。另請參閱演示 - https://ideone.com/Hq8BeZ –

回答

1

試試這個:有一個更合適的欺騙

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());