Rekapitulation

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

Obwohl wir uns in diesem Kapitel vor allem mit Perl befasst haben, gibt es einige Punkte mit Bezug auf reguläre Ausdrücke zusammenzufassen:

  1. Die meisten Werkzeuge haben ihren eigenen Dialekt von regulären Ausdrücken. Die regulären Ausdrücke von Perl scheinen zu einem ähnlichen Grundtyp wie jene von egrep zu gehören, aber Perl hat einen viel reicheren Vorrat von Metazeichen. Viele Programmiersprachen wie Java, Python, die .NET-Sprachen und Tcl haben an Perl angelehnte Dialekte.
  2. In Perl wird eine Regex mit dem Konstrukt $variable =~ m/.../ auf einen String angewandt. Das m steht für »Match«-Operator, und die Slashes dienen zur Begrenzung des regulären Ausdrucks, sind aber nicht Teil davon. Der Operator liefert als Resultat »wahr« oder »falsch«.
  3. Metazeichen -– Zeichen, die auf spezielle Weise interpretiert werden –- gibt es nicht nur bei regulären Ausdrücken. Wie beim Thema Strings in Anführungszeichen bei Shells besprochen, kommt es vor, dass mehrere Instanzen um die Interpretation der gleichen Zeichen wetteifern. Das Wissen um die Metazeichen der verschiedenen Kontexte (Shell, Regex, String u. A.) wird wichtig, wenn diese mit Perl, PHP, Java, Tcl, GNU Emacs, awk, Python oder anderen modernen Skript-Sprachen zusammenarbeiten sollen. (Und innerhalb der jeweiligen regulären Ausdrücke haben natürlich die Zeichenklassen wiederum ihren eigenen Satz von Metazeichen.)
  4. Bei Perl und den meisten genannten Programmiersprachen gibt es unter anderem folgende Abkürzungen bei regulären Ausdrücken (manche davon wurden noch nicht vorgestellt):

    \t  Ein Tabulatorzeichen (Tab)
    \n  Ein Newline
    \r  Carriage Return
    \s  Whitespace, »weiße Zeichen« (Leerzeichen, Tab, Newline, Formfeed usw.)
    \S  Jedes Zeichen, das nicht zu ˹\s˼ gehört
    \w  ˹[a­zA­Z0­9_]˼ (praktisch ist ˹\w+˼; w als Merkhilfe für »Wort«)
    \W Jedes Zeichen, das nicht zu ˹\w˼ gehört, also ˹[^a­zA­Z0­9_]˼
    \d ˹[0­9]˼, also eine Ziffer (»digit«)
    \D Jedes Zeichen, das nicht zu ˹\d˼ gehört, also ˹[^0­9]˼

  5. Mit dem /i-Modikator werden Groß- und Kleinbuchstaben als äquivalent angesehen. Obwohl meist »/i« geschrieben, wird nur das »i« an den schließenden Begrenzer angehängt.
  6. Mit den etwas unschön aussehenden nicht-einfangenden Klammern ˹(?:...)˼ kann man Teile einer Regex gruppieren, ohne dass der damit erkannte Text eingefangen und abgespeichert wird.
  7. Wenn eine Mustererkennung erfolgreich ist, werden in Perl die Variablen $1, $2, $3 usw. gesetzt, die den Text enthalten, auf den die mit ˹(...)˼ geklammerten Unterausdrücke gepasst haben. Mit diesen Variablen kann man mittels einer Regex aus einem String einzelne Teile herauspflücken. (Mit anderen Programmiersprachen funktioniert das nach demselben Prinzip auf andere Weise; Sie werden dazu unter Features und Dialekte viele Beispiele sehen.)

    Unterausdrücke werden von links nach rechts nach ihren öffnenden Klammern mit 1 beginnend nummeriert. Unterausdrücke können verschachtelt werden wie beispielsweise in ˹(VereinigteStaaten(vonAmerika)?)˼. Auch wenn Klammern aus anderen Gründen (etwa um Gruppen für Quantoren zu bilden) gesetzt werden, werden dennoch die nummerierten Variablen $1 usw. gesetzt.

  

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