Angaben zu Anzahl und Wiederholung - Quantifier

Angaben, die in irgendeiner Weise die Anzahl eines Zeichens oder einer Zeichengruppe definieren, heißen Quantifier (engl. to quantify ⇒ quantifizieren). Quantifier sind Metazeichen, mit denen sich Anzahl und Wiederholungen festlegen lassen, zum Beispiel mindestens drei Zeichen a hintereinander oder soviel Zeichen b wie möglich. Sie beziehen sich jeweils auf den direkt davor stehenden Ausdruck.

Auf folgende Ausdrücke kann ein Quantifier angewendet werden:

Angabe der Wiederholungen

Will man die Anzahl der Wiederholungen gezielt festlegen, also z.B. drei bis fünf oder mindestens acht Wiederholungen, kann man das mit Hilfe von geschweiften Klammern {} tun. Mit geschweiften Klammern läßt sich die minimale, maximale oder die genaue Anzahl an Zeichen oder Wiederholungen festlegen.

Minimale Anzahl

Wird ein Wert gefolgt von einem Komma angegeben, so wird damit die minimale Anzahl an erforderlichen Wiederholungen festgelegt. ~(ab){3,}~U findet mindestens drei Wiederholungen von ab, also z.B. ababab in aabbababababababaabababaababaababab.

Der Modifier U muß hier verwendet werden, um nur die Mindest-Anzahl an Wiederholungen zu finden. Ohne diesen Modifier würden immer soviel Übereinstimmungen wie möglich gefunden, sechs sind nun mal auch in gewisser Weise mindestens drei.

Maximale Anzahl

Genauso läßt sich die maximale Anzahl festlegen, nur dass hier der Wert hinter dem Komma angegeben werden muß. /(ab){,4}/ findet maximal abababab in aabbababababababaabababaababaababab, aber auch weniger Übereinstimmungen, falls nur weniger vorhanden sind.

Minimale und maximale Anzahl

Werden beide Werte angegeben, so lässt sich damit gleichzeitig die minimale und maximale Anzahl festlegen. Der Reguläre Ausdruck /(ab){2,6}/ findet höchstens sechs, aber mindestens zwei Wiederholungen von ab in aabbababababababaabababaababaababab.

Genaue Anzahl

Wird nur ein einzelner Wert angegeben, so kann damit die genaue Anzahl an Wiederholungen festgelegt werden. /(ab){5}/ findet die Zeichenkette ababababab in aabbababababababaabababaab Der gesuchte Ausdruck muss also genau fünf mal hintereinander auftreten.

Fehlerquellen

Zu beachten ist, dass die Angabe in den Klammern nicht größer als 65536 sein darf und dass der zweite Wert größer oder gleich dem ersten sein muss.

Der Ausdruck #a{100000}# würde mit der der Fehlermeldung number too big in {} quantifier quittiert, bei dem Ausdruck #a{4,2}# erhielte man als Fehlermeldung numbers out of order in {} quantifier.

Kurzschreibweisen

Neben der genauen Angabe der Wiederholungen gibt es drei Kurzschreibweisen, die im folgenden erläutert werden.

Ein oder kein Auftreten:

Soll festgelegt werden, dass ein Zeichen oder eine Zeichengruppe an der jeweiligen Stelle vorkommen kann, aber nicht muss, lässt sich das mit Hilfe des Fragezeichens ? tun. Mit dem Fragezeichens kann festgelegt werden, dass ein Ausdruck vorhanden sein kann. Der jeweilige Ausdruck tritt also kein oder genau ein Mal im Suchmuster auf, was der Angabe {0,1} entspricht.

Der Reguläre Ausdruck /jpe?g/ zum Überprüfen eines JPEG-Dateityps würde sowohl auf den Text jpeg als auch auf jpg zutreffen. Das Fragezeichen bezieht sich hier nur auf den Buchstaben e und drückt somit aus, daß dieser Buchstabe vorkommen darf, aber nicht vorkommen muß.

Quantifier lassen sich auch in Verbindung mit Unterausdrücken einsetzen. #(http://)?www\.internet\.de# trifft sowohl auf www.internet.de als auch auf http://www.internet.de zu.

Kein oder beliebig viele Vorkommen

Der Stern * gibt an, daß ein Ausdruck beliebig oft (auch kein mal) vorkommen darf.

Der Ausdruck /a*/ trifft auf Zeichenketten zu, die aus beliebig vielen Buchstaben a bestehen, also zum Beispiel auf aaaa genauso wie auf aaaaaaaaa oder eine leere Zeichenkette - also kein a. Dies ist die Kurzschreibweise für {0,}

mindestens ein Vorkommen

Soll ein Ausdruck mindestens einmal vorkommen, so kann man das durch ein Plus + ausdrücken. Der trifft auf genau ein(e) oder beliebig viele Zeichen(gruppen) zu - was auch als {1,} ausdrückbar ist.

Der Ausdruck /test-(test2-)+test/ trifft auf alle Zeichenketten zu, in denen der Ausdruck test2- mindestens einmal enthalten ist, zu, z.B. auf test-test2-test, test-test2-test2-test oder test-test2-test2-test2-test.

Verwandte Themen
Kapitelnavigation