Heim > Datenbank > MySQL-Tutorial > Warum löst MySQL REGEXP den Fehler „#1139: Ungültiger Wiederholungsoperand' aus und wie kann ich ihn beheben?

Warum löst MySQL REGEXP den Fehler „#1139: Ungültiger Wiederholungsoperand' aus und wie kann ich ihn beheben?

Susan Sarandon
Freigeben: 2024-11-23 15:25:13
Original
705 Leute haben es durchsucht

Why Does MySQL REGEXP Throw

#1139 Fehler: Ungültiger Wiederholungsoperand-Operand im regulären Ausdruck

Beim Abfragen einer MySQL-Tabelle mit einem regulären Ausdruck (Regex), um eine bestimmte auszuwählen In den Ergebnissen stoßen Benutzer gelegentlich auf den Fehler „#1139 – Fehler „Wiederholungsoperanden-Operand ungültig“ von regexp."Dieser Fehler weist darauf hin, dass der bereitgestellte reguläre Ausdruck einen ungültigen Wiederholungsoperanden enthält.

Ursache:

Der Fehler tritt auf, weil MySQL Henry Spencers POSIX verwendet. konforme Implementierung regulärer Ausdrücke. Diese Implementierung unterstützt keine nicht gierigen Quantoren wie „?“, die in PCRE (Perl-kompatible reguläre Ausdrücke) verwendet werden. Daher löst die Verwendung von „?“ nach „*“ oder „ “ in einem regulären Ausdruck einen Fehler aus.

Lösung:

Um dieses Problem zu beheben, ersetzen Sie „non -gieriger Quantor „?“ mit dem gierigen Quantifizierer „*“, der weiterhin den notwendigen Abgleich durchführt:

SELECT text
FROM `articles`
WHERE content REGEXP '.*<img[^>]*src="http://www'
ORDER BY date DESC
Nach dem Login kopieren

Zusätzlich, um den Abgleich von Zeichenfolgen wie oder

Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage