4.5 Reguläre Ausdrücke
 
Mit dem Paket java.util.regex lässt sich mithilfe der Klassen Matcher und Pattern eine Zeichenkette gegen ein Muster prüfen. Mit dieser leistungsfähigen Implementierung lässt sich leicht die Funktionalität von Dienstprogrammen wie awk, sed, emacs, perl oder grep nachbilden.
Im Prinzip besteht das Erkennen immer aus dem Aufbau eines Pattern-Objekts mit dem regulären Ausdruck und der Prüfung:
Pattern p = Pattern.compile( "a*b" );
Matcher m = p.matcher( "aaaaab" );
boolean b = m.matches();
Die einzelnen Zeilen lassen sich auch zusammenfassen:
boolean b = Pattern.matches( "a*b", "aaaaab" );
Für reguläre Ausdrücke existieren eine ganze Menge von Regeln. Eine Übersicht findet sich in der API-Hilfe in der Klasse java.util.regex.Pattern. Widmen wir uns zunächst dem Funktionenangebot:
final class java.util.regex. Pattern
implements Serializable
|
|
static Pattern compile( String regex )
Übersetzt den regulären Ausdruck in ein Pattern-Objekt. |
|
static Pattern compile( String regex, int flags )
Übersetzt den regulären Ausdruck in ein Pattern-Objekt mit Flags. Als Flags sind CASE_INSENSITIVE, MULTILINE, DOTALL, UNICODE_CASE und CANON_EQ erlaubt. |
|
int flags()
Liefert die Flags, nach denen geprüft wird. |
|
Matcher matcher( CharSequence input )
Liefert ein Matcher-Objekt, das prüft. |
|
static boolean matches( String regex, CharSequence input )
Liefert true, wenn der reguläre Ausdruck regex auf die Eingabe passt. |
|
String pattern()
Liefert den regulären Ausdruck, den das Pattern repräsentiert. |
Einige Methoden sind lediglich Abkürzungen. So macht der statische Aufruf Pattern. matches() nichts anderes, als ein Pattern zu compilieren:
Pattern.compile( regex ).matcher( input ).matches()
Das alternative Paket org.apache.regexp
Das org.apache.regexp-Paket ist eine Java-Implementierung der klassischen Bibliothek für reguläre Ausdrücke auf der Basis endlicher Automaten unter der BSD-Lizenz. Das Paket lässt sich unter http://jakarta.apache.org/regexp/ laden. Das Paket enthält wie üblich den kompletten Quellcode.
|