Java How To
 


Ersetzen von Teil-Strings mit regulären Ausdrücken

How To ...

Wie ersetze ich durch reguläre Ausdrücke spezifizierte Teil-Strings in einem String?

Hintergründe

Seit Version 1.4 kennt Java reguläre Ausdrücke (Klasse java.util.regex.Pattern), die in replace-Methoden der Klasse String verwendet werden können.

So geht's

Die Methoden replaceAll() und replaceFirst() der Klasse java.lang.String haben zwei Parameter vom Typ String. Der jeweils erste Parameter ist ein regulärer Ausdruck, der nach den Regeln der Klasse java.util.regex.Pattern gebildet wird.
replaceAll() ersetzt alle Vorkommen des regulären Ausdrucks durch den zweiten String, replaceFirst() ersetzt das erste Vorkommen des regulären Ausdrucks durch den zweiten String.

Der folgende Code-Ausschnitt

    String str = "Dies ist ein ganz langer String";
    System.out.println(str.replaceFirst("in", "xx"));
    System.out.println(str.replaceAll("[aei]", "xxx")); 
		

erzeugt die Ausgabe

    Dies ist exx ganz langer String
    Dxxxxxxs xxxst xxxxxxn gxxxnz lxxxngxxxr Strxxxng
		

Im Beispiel mit replaceFirst() wird die Konstante "in" als regulärer Ausdruck verwendet. Eine Konstante steht für sich selbst.
Im Beispiel mit replaceAll() wird "[aei]" als regulärer Ausdruck verwendet. Dieser steht für die Menge der Zeichen {a,e,i}. Es wird also jedes Vorkommen eines dieser Zeichen durch "xxx" ersetzt.