News Ticker

Reguläre Ausdrücke 4: Das Fragezeichen

Es geht weiter mit regulären Ausdrücken. In diesem Artikel soll ein neues Zeichen mit spezieller Bedeutung erklärt werden: das Fragezeichen. Dabei handelt es sich, wie in den anderen (geschriebenen und noch kommenden) Artikeln um kein unverständliches Prinzip. Im Gegenteil: Das Fragezeichen ist schnell verstanden. Jedoch sind reguläre Ausdrücke, also alle Zeichen kombiniert, so gewaltig, dass eine einfache Einführung von Nöten ist um die Basis aller Ausdrücke zu verstehen. Deshalb also kleine Schritte, dafür am Ende aber mit Erfolg. Nun aber genug des Smalltalk und auf in den Kampf.

Regel 2
Der Ausdruck vor einem ? kann kein- oder einmal vorkommen.

Im Klartext heißt das: Das Zeichen oder der Ausdruck, welcher vor dem Fragezeichen stehen, kann vorkommen, muss aber nicht. Das heißt aber auch, dass der Ausdruck wirklich nur maximal einmal auftauchen darf. Sollte der Ausdruck mehrmals nacheinander vorkommen, so wird dies nicht „gematcht“.

Hierzu ein kurzes Beispiel:

[martin@partners3 martin]$ cat datei
traumschiff
raumschiff
aumschiff
[martin@partners3 martin]$ grep "traumschiff" datei
traumschiff
[martin@partners3 martin]$ grep "raumschiff" datei
traumschiff
raumschiff
[martin@partners3 martin]$ egrep "t?raumschiff" datei
traumschiff
raumschiff
[martin@partners3 martin]$

Zwei Dinge sind hier anzumerken. Erstens wird für „normale“, also keine universellen Ausdrücke, grep verwendet, während egrep für reguläre Ausdrücke benutzt werden kann. egrep ist dabei das gleiche wie grep mit dem Schalter -E welcher für extended-regexp (dt. erweiterter regulärer Ausdruck) steht. Zweitens gibt es einen Unterschied zwischen einem grep nach raumschiff und einem egrep nach t?raumschiff obwohl das Programm das gleiche Resultat zeigt. Sucht man nach raumschiff, wird logischerweise auch traumschiff ausgegeben, da letztgenannteres die erste Zeichenkette enthält. Das Programm weiss also gar nichts vom t vor dem raumschiff. In dem egrep-Kommando ist dem Programm sehr wohl bewusst, dass ein t vor raumschiff existiert.

Dies zeigt wie genau man reguläre Ausdrücke formulieren muss, denn sie können wochenlang funktionieren und plötzlich findet man einen Fehler und gar nichts geht mehr – der Alptraum eines jeden Systemadministrators.

1 Kommentar zu Reguläre Ausdrücke 4: Das Fragezeichen

  1. Eduard Gotwig // 28. Aug 2012 um 08:33 //

    Das Fragezeichen ist hier kein regulärer Ausdruck, sondern ein Dateinamenmuster.

Kommentare sind deaktiviert.