Quantoren

Syntaxdiagramm

Syntaxdiagramm REPEAT

Beschreibung

Unter einem Quantor versteht man eine Angabe darüber, ob und wie oft ein vorangegangenes Muster wiederholt werden soll.

Innerhalb der geschweiften Klammern wird durch Angabe einer oder zweier durch Kommata getrennter Zahlen angegeben, wie oft das vorangegangene Muster wiederholt werden darf oder muß. Wird nur eine Zahl angegeben, muß das Muster genau so oft erkannt werden, wie die Zahl beschreibt. Werden zwei Zahlen angegeben, werden diese als Unter- und Obergrenze interpretiert. Das Muster muß mindestens so oft erkannt werden, wie die Untergrenze angibt, und darf nicht öfter erkannt werden, als die Obergrenze angibt.

Wird die Untergrenze weggelassen, wird die Untergrenze mit Null angenommen. Wird die Obergrenze weggelassen, wird sie als Unendlich angenommen.

Mit einem '*' wird das vorangegangene Muster beliebig oft wiederholt. Insbesondere ist auch der Fall eingeschlossen, daß das Muster gar nicht erkannt wird (Null-malige Wiederholung). Der '*' ist im Prinzip eine Abkürzung für den Quantor '{0,}'.

Mit einem '+' wird das vorangegangene Muster ebenfalls beliebig oft wiederholt. Allerdings muß es mindestens einmal vorkommen. Das '+' ist im Prinzip lediglich eine Abkürzung für den Quantor '{1,}'.

Mit einem '?' wird das vorangegangene Muster ein- oder keinmal wiederholt. Auch in diesem Fall gilt das Muster als erkannt, wenn es gar nicht vorkommt. Das '?' ist im Prinzip lediglich eine Abkürzung für den Quantor '{0,1}'.

Beispiele

a*
a+
a?
a{3}
a{1,3}
a{,3}
a{2,}

Erkennt 'a', 'aa', 'aaa', usw aber auch ''.
Erkennt 'a', 'aa', 'aaa', usw.
Erkennt 'a' und ''.
Erkennt 'aaa'.
Erkennt 'a', 'aa', 'aaa'.
Erkennt 'a', 'aa', 'aaa' aber auch ''.
Erkennt 'aa', 'aaa', usw.

Hinweis

Alle Quantoren sind 'gierig'. Das heist, sie versuchen soviele Muster aufzusammeln wie irgendwie möglich. Dieses Verhalten führt manchmal zu unerwarteten Ergebnissen. Daher ist dem Thema 'Gier' ein eigenes Kapitel gewidmet.