Nothing to repeat

Der Fehler Warning: [FUNCTION]: Compilation failed: nothing to repeat at offset [OFFSET] in [FILENAME] on line [LINE] »Nichts da zum Wiederholen« tritt auf, wenn im Suchmuster ein Quantifier definiert wurde, der sich auf nicht bezieht. Vor dem Quantifier steht also kein Ausdruck, der wiederholt werden könnte. Der Fehler tritt zum Beispiel auf, wenn man vergessen hat, einen Quantifier, der als normales Zeichen verwendet werden soll, zu maskieren.

Beispiele

Hier mal ein einfaches Beispiel, wo dieser Fehler auftreten wird: <?PHP preg_match('#?#''Dies könnte ein Text sein'); ?> Zugegeben, das Beispiel ist recht sinnlos, illustriert aber den Fehler ganz gut. Der Quantifier ? bezieht sich hier auf nichts, somit kommt es zu dem Fehler.

Hier bezieht sich der Quantifer lediglich auf die Assertion (?=.), <?PHP preg_match('#\d+(?=.)?#''Dies könnte ein Text sein'); ?> was nicht erlaubt ist.

Fehlerbeseitigung

Soll ein Quantifier als normales Zeichen im Suchmuster betrachtet werden, so muss er maskiert werden. Tritt der Fehler in Verbindung mit Assertions auf, so sollte er wohl höchstwahrscheinlich innerhalb der Assertion stehen, dort ist er erlaubt. Soll der Quantifier auf das Suchmuster, welches in Verbindung mit der Assertion steht, angewendet werden, muss dieses Konstrukt als Unterausdruck definiert sein. Da Assertions nicht wirklich Platz im Suchmuster belegen, können auf sie auch keine Quantifier angewendet werden.

Verwandte Themen
Kapitelnavigation