Heim > Datenbank > MySQL-Tutorial > Wie verweise ich auf Capture-Gruppen in den regulären Ausdrücken von MySQL?

Wie verweise ich auf Capture-Gruppen in den regulären Ausdrücken von MySQL?

Barbara Streisand
Freigeben: 2024-11-04 00:45:03
Original
731 Leute haben es durchsucht

How to Reference Capture Groups in MySQL's Regular Expressions?

Referenzieren von Capture-Gruppen in den regulären Ausdrücken von MySQL

MySQL bietet umfassende Unterstützung für reguläre Ausdrücke, einschließlich der Möglichkeit, Teile eines übereinstimmenden Musters zu erfassen und wiederzuverwenden . Allerdings unterscheiden sich Erfassungs- und Referenzierungsgruppen geringfügig von anderen Regex-Implementierungen.

Im bereitgestellten Beispiel versucht REGEXP '^(.)1$', ein Zeichen zu finden, das unmittelbar nach sich selbst wiederholt wird. Leider funktioniert es in MySQL nicht, da Erfassungsgruppen nicht nativ unterstützt werden.

Lösung für MySQL 8

MySQL 8 führt die Funktion REGEXP_REPLACE ein, die Erfassungsgruppen unterstützt . Um auf eine erfasste Gruppe zu verweisen, verwenden Sie $n, wobei n der Index der Erfassungsgruppe ist (beginnend bei 1). Zum Beispiel:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','');
-- Result: "overflowstack"
Nach dem Login kopieren

Im obigen Beispiel stimmt die erste Erfassungsgruppe ((.{5})) mit den ersten fünf Zeichen (Stapel) überein. Die zweite Capture-Gruppe ((.*)) entspricht den restlichen Zeichen (Überlauf). Sie werden dann in der Ersatzzeichenfolge ausgetauscht.

Lösung für MariaDB

MariaDB, ein Fork von MySQL, unterstützt auch Capture-Gruppen in Regex, jedoch mit einem anderen Ansatz. Es verwendet \n, um auf Capture-Gruppen in REGEXP_REPLACE:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1');
-- Result: "overflowstack"
Nach dem Login kopieren
zu verweisen

Das obige ist der detaillierte Inhalt vonWie verweise ich auf Capture-Gruppen in den regulären Ausdrücken von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage