Anhang A. Reguläre Ausdrücke

Anders Lund

GUI-Übersetzung: Thomas Diehl
Deutsche Übersetzung: Matthias Schulz
Dieser Anhang enthält eine kurze, aber hoffentlich ausreichende Einführung in die Welt der regulären Ausdrücke. Es werden reguläre Ausdrücke in der Form dokumentiert, in der sie in KatePart anwendbar sind, die aber nicht kompatibel z. B. zu der in Perl oder in grep verwendeten Form ist.

Einleitung

Reguläre Ausdrücke stellen eine Möglichkeit zur Verfügung, vielleicht zu suchende Teile von Text in einer Form zu beschreiben, die von einer kleinen Software verstanden wird, sodass diese feststellen kann, ob die Beschreibung zutrifft und sogar Text zur späteren Verwendung speichern kann.

Ein Beispiel: Nehmen Sie an, Sie wollen eine Text nach Abschnitten durchsuchen, die mit einem der Namen Henrik oder Pernille beginnen, gefolgt von einer Form des Verbs say.

Mit einer normalen Suche würden Sie anfangen, nach dem ersten Namen Henrik zu suchen, vielleicht gefolgt von sa, also Henrik sa. Bei dieser Suche würden Sie alle Übereinstimmungen überspringen müssen, die nicht am Anfang eines Abschnittes stehen und die, hinter denen ein sa steht, aber kein says, said und so weiter. Dann natürlich das Ganze von vorn für den nächsten Namen ...

Mit regulären Ausdrücken können Sie dies mit einer einzelnen Suche erreichen und das noch genauer.

Um dies zu erreichen, definieren reguläre Ausdrücke Regeln zum Ausdrücken von Details einer zu suchenden Zeichenkette. Unser Beispiel, das wir wie folgt ausdrücken können: Eine Zeile mit Henrik oder Pernille beginnend (eventuell nach bis zu 4 Leerzeichen oder Tabulatoren) gefolgt von einem Leerzeichen gefolgt von sa und dann entweder ys oder id kann so als regulärer Ausdruck geschrieben werden:

^[ \t]{0,4}(Henrik|Pernille) sa(ys|id)

Das oben angegebene Beispiel zeigt alle vier Hauptkonzepte von regulären Ausdrücke, speziell:

  • Muster

  • Behauptungen

  • Quantifiers

  • Referenzen

Das Hochzeichen (^) am Anfang des Ausdruckes kennzeichnet eine Behauptung, die nur dann wahr ist, wenn sich der folgende Text am Anfang einer Zeile befindet.

Die Zeichenketten [ \t] und (Henrik|Pernille) sa(ys|id) sind Muster. Das erste ist ein Zeichen das entweder auf ein Leerzeichen oder ein Tabulatorzeichen zutrifft, das andere enthält als erstes ein Untermuster, das entweder auf Henrik oder Pernille zutrifft, dann ein Muster, das exakt auf sa zutrifft und zum Schluss wieder ein Untermuster, das auf ys, oder id zutrifft.

Die Angabe {0,4} ist ein Quantifizierer, der sagt: von 0 bis 4 mal das vorher spezifizierte.

Weil Software für reguläre Ausdrücke, die das Konzept von Referenzen den gesamten zutreffenden Teil des Textes wie auch in Klammern eingeschlossene Untermuster sichert, können Sie diese gefundenen Textstellen (diese sind nach dem Suchen mit einem regulären Ausdruck in einem Textdokument in einem Editor meistens ausgewählt) oder den gefundenen Namen oder den letzten Teil des Verbs weiterverwenden, die Referenzen ermöglichen den Zugriff auf diese.

Zusammengefasst: die regulären Ausdrücke treffen zu, wo wir wollten, und nur dort.

Die folgenden Abschnitte beschreiben im einzelnen, wie Muster, Zeichenklassen, Behauptungen, Quantifizierer und Backreferenzen benutzt werden und der letzte Abschnitt gibt einige nützliche Beispiele.