2017-03-10 3 views
1

Wie kann ich einen Text mit Klammern löschen? Java replaceAll (..) und Regular Expressions

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

Wenn ich das tue, erhalte ich:

string= product 

Aber ich würde

string= product,user 

Mit freundlichen Grüßen bekommen!

+2

Re-geschlossen mit einer geeigneteren narren. Siehe auch eine Demo - https://ideone.com/Hq8BeZ –

Antwort

1

Versuchen Sie folgendes:

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