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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 02:05:29552Durchsuche

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"

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"

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!

Stellungnahme:
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