Entfernen Sie alles in Klammern mit Hilfe von Regex

7

Ich habe die folgende Regex verwendet, um zu versuchen, Klammern und alles, was darin enthalten ist, in einer Zeichenfolge namens name zu entfernen.

%Vor%

Aus irgendeinem Grund bleibt der Name unverändert. Was mache ich falsch?

    
Daniel 21.11.2011, 00:47
quelle

5 Antworten

18

Strings sind unveränderlich. Sie müssen dies tun:

%Vor%

Edit: Da% cos_de% gierig ist, wird es so viel wie möglich töten. So wird .* in "(abc)(def)" umgewandelt.

    
Tikhon Jelvis 21.11.2011, 00:51
quelle
6

Wie von Jelvis erwähnt, wählt ". *" alles aus und konvertiert "(ab) ok (cd)" in ""

Die folgende Version funktioniert in diesen Fällen "(ab) ok (cd)" - & gt; "ok", indem Sie alles außer der schließenden Klammer auswählen und die Leerzeichen entfernen.

%Vor%     
Pascalius 22.04.2015 06:44
quelle
2

String.replaceAll() bearbeitet die ursprüngliche Zeichenfolge nicht, sondern gibt die neue zurück. Also müssen Sie tun:

%Vor%     
jli 21.11.2011 00:49
quelle
2

Wenn Sie das Javadoc für String.replaceAll() lesen Sie werden feststellen, dass die resultierende Zeichenfolge der Rückgabewert ist.

Generell sind String s in Java unveränderlich; sie ändern nie den Wert.

    
Oliver Charlesworth 21.11.2011 00:49
quelle
0

Ich verwende diese Funktion:

%Vor%

Sie können es so nennen:

%Vor%     
xyshio 14.02.2017 12:30
quelle

Tags und Links