2016-03-29 8 views
0

Ich möchte Sonderzeichen durch nichts ersetzen. Also habe ich versucht,Regex funktioniert nicht zum Ersetzen von Sonderzeichen

this.name.replace("[^a-zA-Z]+", "").trim() 

ich das unten stehende Wort wnat zu 000 Vektor

OOO "Vektor"

+0

'this.name.replaceAll ("[^ a-zA-Z] +", "") .trim()' –

+0

ersetzen soll [t String als erster argumenet nicht akzeptieren Regex. –

+0

bereits versucht und nicht funktioniert – Luxy

Antwort

1

String.replace nimmt ein wörtliches erstes Argument. replaceAll verwendet eine regex

name = name.replaceAll("[^a-zA-Z ]+", ""); 
4

Die Dokumentation von replace sagt:

Ersetzt jedes Teilzeichen dieser Zeichenfolge, die die wörtliche Zielsequenz mit dem angegebenen wörtlichen Ersatzsequenz entspricht.

Es werden keine regulären Ausdrücke benötigt.

Die Dokumentation von replaceAll sagt:

jede Teilkette dieser Zeichenfolge ersetzt, die den regulären Ausdruck mit dem angegebenen Ersatz gegeben einstimmt.

So können Sie verwenden:

this.name.replaceAll("[^a-zA-Z]+", "").trim(); 

Sie auch replaceFirst mit regulären Ausdrücken verwenden, hier nicht though.


Auch in einem Kommentar sagen Sie, dass Sie es versucht haben. Ich vermute, dass es ist, weil Sie gerade nutzen:

this.name.replaceAll("[^a-zA-Z]+", "").trim(); 

Aber Java-Strings sind unveränderlich, und ändern sich nicht von selbst. Daher sollten Sie verwenden:

this.name = this.name.replaceAll("[^a-zA-Z]+", "").trim(); 
Verwandte Themen