Ich möchte alle Arten von eckigen Klammern (Beispiel: [], (), {}) in der Zeichenkette mit java entfernen.
Ich habe versucht, diesen Code zu verwenden:
%Vor%Aber es funktioniert nicht, hilf mir bitte.
Um alle Interpunktionszeichen zu entfernen, die alle Klammern, geschweifte Klammern und eckige Klammern enthalten, lautet die Frage:
%Vor% Das erste Argument von replaceAll
benötigt einen regulären Ausdruck.
Alle Klammern haben in Regex Bedeutung: Klammern werden in Regex verwendet, um Gruppen einzufangen , eckige Klammern werden für Zeichenklassen & amp; Klammern werden für übereinstimmendes Zeichenvorkommen verwendet. Deshalb müssen sie alle geflüchtet sein ... Allerdings können hier die Zeichen einfach in eine Zeichenklasse mit einbezogen werden Escaping erforderlich für eckige Klammern
%Vor% Das erste an die Methode replaceAll()
übergebene Argument sollte ein regulärer Ausdruck sein. Wenn Sie diese wörtlichen Klammerzeichen abgleichen möchten, müssen Sie \(
, \)
sie auskommentieren.
Sie können Folgendes verwenden, um Klammerzeichen zu entfernen. Unicode-Eigenschaft \p{Ps}
passt zu jeder Art von öffnender Klammer und Unicode-Eigenschaft \p{Pe}
entspricht jeder Art von schließender Klammer.
Sie müssen der Klammer entkommen, da sie als Teil einer Regex behandelt wird
%Vor%Um alle Klammern zu entfernen, versuchen Sie
%Vor% Sie können String.replace
anstelle von String.replaceAll
für bessere Leistung verwenden, da nach der genauen Sequenz gesucht wird und keine regulären Ausdrücke benötigt werden.
Wenn Sie mit Texten arbeiten, empfehle ich Ihnen, die Klammern durch ein Leerzeichen zu ersetzen, um zu vermeiden, dass Wörter zusammenkommen: watching tv(at home) -> watching tvat home
subject = StringUtils.substringBetween (Betreff, "[", "]")