Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Linda Hamilton
Freigeben: 2024-11-04 02:05:29
Original
518 Leute haben es durchsucht

How do I Reference Capture Groups in MySQL Regular Expressions?

Referenzieren von Capture-Gruppen in MySQL Regex

Bei der Arbeit mit regulären Ausdrücken in MySQL ist es wichtig zu verstehen, wie Capture-Gruppen referenziert werden. Mithilfe von Erfassungsgruppen können Sie bestimmte Muster innerhalb einer Zeichenfolge abgleichen und extrahieren.

Problem: Gruppen können nicht referenziert werden

In der Frage versucht der Benutzer, ein sich wiederholendes Zeichen mithilfe des Ausdrucks REGEXP '^ zu erfassen (.)1$'. Dieser Versuch schlägt jedoch fehl, die erfasste Gruppe korrekt zu referenzieren.

Lösung

In MySQL 8 und höher können Sie Capture-Gruppen mit $1, $2 usw. referenzieren. Der folgende Ausdruck erfasst und ersetzt erfolgreich ein Muster:

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

Hier erfasst (.{5}) eine Folge von fünf Zeichen und (.*) alle verbleibenden Zeichen. Das Ergebnis ist eine Zeichenfolge mit vertauschten erfassten Gruppen: „overflowstack“.

Für MariaDB verwendet die Referenzierung von Erfassungsgruppen \1, \2 usw.:

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

Denken Sie daran, Gruppen zu erfassen ermöglichen es Ihnen, auf bestimmte Abschnitte einer Zeichenfolge abzuzielen, was eine größere Flexibilität für den Mustervergleich und die Manipulation in Ihren MySQL-Abfragen bietet.

Das obige ist der detaillierte Inhalt vonWie verweise ich auf Capture-Gruppen in regulären MySQL-Ausdrücken?. 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