Erweiterte einführende Beispiele

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

Sie erinnern sich an das Problem der verdoppelten Wörter aus Einführung in reguläre Ausdrücke? Ich hatte gesagt, dass in einer Sprache wie Perl eine komplette Lösung in einigen wenigen Zeilen realisierbar wäre. Eine solche Lösung kann etwa so aussehen:

$/ = ".\n";
while (<>) {
      next if !s/\b([a­z]+)((?:\s|<[^>]+>)+)(\1\b)/\e[7m$1\e[m$2\e[7m$3\e[m/ig;
      s/^(?:[^\e]*\n)+//mg;       # Nicht markierte Zeilen löschen.
      s/^/$ARGV: /mg;             # Dateinamen voranstellen.
      print;
}

Jawohl, das ist das ganze Programm.

Auch wenn Sie Perl kennen, nehme ich nicht an, dass Sie das sofort verstehen (noch nicht!). Ich wollte nur ein Beispiel zeigen, das über die Möglichkeiten von egrep hinausgeht, und Ihren Appetit auf ernsthafte Applikationen von regulären Ausdrücken wecken. Die wichtigen Teile des Programms sind die drei regulären Ausdrücke:

  • ˹\b([a­z]+)((?:\s|<[^>]+>)+)(\1\b)˼
  • ˹^(?:[^\e]*\n)+˼
  • ˹^˼

Obwohl das ein Beispiel aus der Programmiersprache Perl ist, können diese drei regulären Ausdrücke genauso (oder mit kleinen Anpassungen) in anderen Sprachen verwendet werden, zum Beispiel in PHP, Python, Java, Visual Basic .NET, Tcl und anderen.

Der letzte reguläre Ausdruck, ˹^˼ , ist sicher ziemlich klar, aber die anderen Ausdrücke sind mit unserem nur an egrep geschulten Wissen noch nicht verständlich. Das liegt daran, dass der Dialekt von Perls regulären Ausdrücken nicht der gleiche ist wie der von egrep. Manche Metazeichen sind anders, vor allem hat Perl (wie die meisten moderneren Werkzeuge) viel mehr davon. In diesem Kapitel werden Sie viele Beispiele dazu sehen.

  

  

<< 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