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.
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.
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!