Entfernen Sie alles, was in Klammern java mit regex
Ich habe mit der folgenden regex zu versuchen, entfernen die Klammern und alles in einen string namens name
.
name.replaceAll("\\(.*\\)", "");
Aus irgendeinem Grund, diese zu verlassen-name unverändert. Was mache ich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Strings sind unveränderlich. Sie haben, dies zu tun:
Edit: Außerdem, da die
.*
ist gierig, es wird töten so viel wie Sie können. So"(abc)something(def)"
wird verwandelt werden in""
..*
ist gierig standardmäßig. Das eigentliche Problem ist, mit Zeichenfolgen wie(abc) (def)
die komplett gelöscht wird.Als angegebenen durch Jelvis, ".*" wählt alles aus und wandelt "(ab) ok (cd)" zu ""
Die version unten funktioniert in diesen Fällen "(ab) ok (cd)" -> "ok", indem Sie alles mit Ausnahme der schließenden Klammer und entfernen Sie die Leerzeichen.
test="(text(some more text ) then some more )"
.- String.replaceAll()
nicht Bearbeiten der original-string, sondern gibt die neue. Damit Sie tun müssen:Wenn Sie Lesen, die Javadoc für
- String.replaceAll()
, werden Sie feststellen, dass es gibt an, dass der resultierende string ist die Rückgabewert.Generell
String
s sind unveränderlich in Java; Sie ändern sich nie Wert.Bin ich mit dieser Funktion:
Können Sie es so nennen: