Verketten von Methoden

(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)

Im folgenden Programmstück wird ein Matcher erzeugt und einige Optionen gesetzt:

Pattern p = Pattern.compile(regex); // Regex kompilieren.
Matcher m = p.matcher(text);        // Regex mit dem Suchtext verbinden -> Matcher.
m.region(5, text.length());         // Region vom 5. Zeichen bis zum Ende.
m.useAnchoringBounds(false);        // ˹^˼ usw. sollen nicht auf die Regionsgrenzen passen.
m.useTransparentBounds(true);       // »Look«-Konstrukte blicken über die Grenzen hinaus.

Wir hatten bereits bei früheren Beispielen gesehen, dass wir das Pattern-Objekt bloß zur Erzeugung des Matchers benötigen und danach nie wieder (das ist sehr häufig der Fall); daher kann man die ersten zwei Zeilen zusammenfassen:

Matcher m = Pattern.compile(regex).matcher(text);
m.region(5, text.length());         // Region vom 5. Zeichen bis zum Ende.
m.useAnchoringBounds(false);        // ˹^˼ usw. sollen nicht auf die Regionsgrenzen passen.
m.useTransparentBounds(true);       // »Look«-Konstrukte blicken über die Grenzen hinaus.

Da die zwei danach aufgerufenen Matcher-Methoden beide das Matcher-Objekt zurückgeben, lassen sich sogar alle Aufrufe in einer Zeile schreiben (hier natürlich umbrochen):

Matcher m = Pattern.compile(regex).matcher(text).region(5,text.length())
              .useAnchoringBounds(false).useTransparentBounds(true);

Damit wird exakt dasselbe erreicht, aber auf viel knappere Weise geschrieben. Ausführliche Kommentare wie in der ersten Version lassen sich auf diese Weise schlecht anbringen, andererseits ist es guter Kommentierstil, nicht einfach zu beschreiben, was abläuft, sondern vielmehr, warum es so gemacht wird. Beispielsweise wird das Programm in Ein Matcher zum Prüfen von HTML mit mehreren Pattern durch die Verkettung von Methoden übersichtlicher und klarer.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:
   

Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln