Reguläre Ausdrücke 10: Klammern
Regel 10
Mit den Klammern ((
und )
) kann man eine Textstelle zu einem Element gruppieren.
Die Regel ist wie immer so kurz wie möglich gehalten. Weitere Konsequenzen werden wie immer hier beschrieben. Was sagt uns diese Regel? Wir können jetzt also reguläre Ausdrücke zu einem Element gruppieren. Auf dieses Element (welches dann als normaler regulärer Ausdruck bewertet wird) können wieder reguläre Ausdrücke angewandt werden. Es handelt sich also um eine Rekursion. Aber genug der Theorie; es folgt ein Beispiel:
tcr@triton ~ $ cat datei traumschiff raumschiff traumtraumschiff tcr@triton ~ $ egrep "(traum)*" datei traumschiff traumtraumschiff tcr@triton ~ $ egrep "(traum){2}" datei traumtraumschiff tcr@triton ~ $ |
Das erste grep-Kommando gruppiert den String traum
und wendet den *
-Operator auf diesen an. Konkret heißt das: traum
darf beliebig oft vorkommen. Das zweite Statement benutzt den Mengenoperator mit der Variable 2. Es muss also traumtraum
im Text vorkommen.
Dies zeigt wie man Zeichen ohne spezieller Bedeutung zusammenknüpft. Klammern kann man aber auch auf reguläre Ausdrücke anwenden: ((ab){2}x){2}
sieht etwas komplizierter aus, ist es aber nicht. ab
muss zweimal vorkommen, danach ein x
. Dies sieht dann so aus: ababx
. Dieser ganze Ausdruck steht in Klammern und muss genau zweimal vorkommen, also ababxababx
. Und genau darauf passt dieser reguläre Ausdruck.
Diese Regel gibt den bisherigen regulären Ausdrücken viel mehr Flexibilität – was ja auch Sinn und Zweck der Ausdrücke ist. Ich wünsche wie immer viel Spaß beim Ausprobieren. Fragen könnt ihr im Kommentarfeld stellen ;).