Heim >Datenbank >MySQL-Tutorial >MySQL REGEXP-Fehler „#1139 – Fehler „Wiederholungsoperator-Operand ungültig': Wie behebe ich Probleme mit nicht gierigen Quantifizierern?
Beim Versuch, einen regulären Ausdruck zu verwenden, um bestimmte Ergebnisse aus einer MySQL-Tabelle abzurufen, kann es vorkommen, dass Folgendes auftritt: die Fehlermeldung:
“#1139 – Fehler „Wiederholungsoperand ungültig“ von regexp"
Um dieses Problem zu beheben, beachten Sie, dass MySQL Henry Spencers Implementierung regulärer Ausdrücke verwendet, die POSIX 1003.2 entspricht. Dieser Implementierung fehlt die Unterstützung für die Verwendung des Fragezeichens (?) als nicht gieriger (fauler) Modifikator für die Quantifizierer Stern (*) und Plus ( ), wie dies in PCRE (Perl-kompatible reguläre Ausdrücke) möglich ist.
Um den Fehler zu beheben, entscheiden Sie sich stattdessen für die gierige Version des Quantifizierers, die die gewünschten Ergebnisse liefern sollte. Um jedoch die Übereinstimmung unerwünschter Muster (z. B. some style/" src="a.png">) zu verhindern, sollten Sie die Verwendung einer negierten Zeichenklasse in Betracht ziehen:
"1*src="http://www""
Beachten Sie, dass „ Für das Zeichen ist kein Escapezeichen erforderlich, und das .* am Anfang des Ausdrucks ist impliziert.
Das obige ist der detaillierte Inhalt vonMySQL REGEXP-Fehler „#1139 – Fehler „Wiederholungsoperator-Operand ungültig': Wie behebe ich Probleme mit nicht gierigen Quantifizierern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!