Java Reguläre Ausdrücke (regular expressions)

Reguläre Ausdrücke (regular expressions)

In Java können reguläre Ausdrücke (regular expressions) seit Version 1.4 direkt geparst werden, ohne daß man zusätzliche Bibliotheken / Hilfsklassen einbinden muss. Hierfür dient das Paket java.util.regex. Damit kann man sehr einfach mit regulären Ausdrücken arbeiten.

Mit Hilfe von regulären Ausdrücken kann man prüfen, ob ein String einem vorgegebenen Pattern (=Muster) entspricht. Ein typisches Beispiel ist die Prüfung, ob eine Benutzer-Eingabe einer prinzipiell korrekten E-Mail-Adresse entspricht. Dazu muss die Eingabe aus mehreren Zeichen bestehen, wobei ein einzelnes @-Zeichen und später ein Punkt enthalten sein muss, und dazwischen sowie davor und danach weitere Zeichen stehen (z. B. xy@irgendwo.de). Mehrere Punkte sind erlaubt, mehrere @-Zeichen hingegen nicht. Hinter dem letzten Punkt dürfen nur noch Buchstaben stehen.

Will man die Korrektheit einer solchen Eingabe prüfen, muss man das Pattern für E-Mail-Adressen im Programmcode hinterlegen und dann die Benutzereingabe gegen dieses Pattern matchen (=prüfen).

Die folgende Methode implementiert eine sehr einfache Version einer solchen Prüfung:

public boolean checkMailAdress(final String email) {
    // wenn immer das gleiche Pattern verwendet wird: besser vorher compilieren
    return (Pattern.matches("^[.&&[^@]]+@[.&&[^@]]+\.[a-zA-Z]+$", email));
}

Dieses Beispiel soll erst einmal nur zeigen, wie reguläre Ausdrücke und Patterns prinzipiell funktionieren. Das Beispiel ist noch nicht ausgereift, weil weitere Kriterien zu prüfen sind (beispielsweise dürfen Domains nicht mit einem Punkt beginnen, und viele Sonderzeichen sind in EMail-Adressen nicht erlaubt usw.).

Anstatt aber den Ausdruck zu optimieren, schauen wir uns zunächst die Funktionsweise des Patterns genauer an:


Eine Übersicht über die vollständige Syntax (auf Englisch) gibt es direkt in der Pattern-Java-Dokumentation.



Nach oben, Inhaltsverzeichnis, Impressum Admin: Artikel editieren