Regex-Capture-Gruppenreferenzierung in MySQL
In MySQL kann die Referenzierung einer Capture-Gruppe innerhalb eines regulären Ausdrucks mit der folgenden Methode erreicht werden:
Syntax:
REGEXP_REPLACE(string, pattern, replacement)
Für MySQL 8:
Capture-Gruppen können mit Klammern () erstellt werden. Um auf eine Capture-Gruppe zu verweisen, verwenden Sie $1, $2 usw.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- Output: "overflowstack"</code>
Für MariaDB:
Capture-Gruppen in MariaDB werden unterschiedlich verwaltet. Rückverweise verwenden \1, \2 usw.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1'); -- Output: "overflowstack"</code>
Beispiel:
Der reguläre Ausdruck ^(.)1$ prüft, ob es zwei identische gibt Zeichen am Anfang der Zeichenfolge, aber diese Syntax funktioniert in MySQL nicht. Verwenden Sie stattdessen Folgendes:
<code class="sql">SELECT REGEXP_REPLACE('aabbcc','^(.)(.)$',''); -- Output: "b"</code>
Dieser reguläre Ausdruck gleicht die ersten beiden Zeichen der Zeichenfolge (a und a) als zwei Erfassungsgruppen ab und ruft das zweite Zeichen (b) ab.
Das obige ist der detaillierte Inhalt vonWie verweise ich auf Capture-Gruppen in regulären Ausdrücken in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!