Die REGEXP_REPLACE SQL-Funktion in MySQL und MariaDB - Regulären Ausdruck ersetzen |
|
| REGEXP_REPLACE | Syntax: | REGEXP_REPLACE(Zeichenkette, Muster, Ersetzen durch [, Position] [, Auftreten] [, Übereinstimmungstyp]) | Rückgabe-Wert: | CHAR | Funktions-Typ: | Reguläre Ausdrücke | |
| | Die SQL-Funktion REGEXP_REPLACE() gibt eine "Zeichenkette" zurück, bei der alle Vorkommen des regulären Ausdrucks "Muster" durch die Zeichenfolge "Ersetzen durch" ersetzt wurden.
Wenn keine Vorkommen gefunden werden, wird die "Zeichenkette" unverändert zurückgegeben.
Die Zeichenfolge "Ersetzen durch" kann Rückverweise auf die Unterausdrücke in der Form \N haben, wobei N eine Zahl von 1 bis 9 ist. Funktioniert nur mit MariaDB.
Die Funktion beachtet die Groß- und Kleinschreibungsregeln der effektiven Sortierung.
Wenn der Wert von "Zeichenfolge", "Muster" oder "Ersetzen durch" NULL ist, gibt die REGEXP_REPLACE()-Funktion NULL zurück.
In MySQL akzeptiert REGEXP_REPLACE() folgende optionale Argumente: In MariaDB stehen diese Optionen nicht zur Verfügung.
"Position": Die Position in "Zeichenfolge", an der die Suche beginnen soll. Der Standardwert ist 1, wenn nicht angegeben.
"Auftreten": Welches Vorkommen einer Übereinstimmung ersetzt werden soll. Wenn nicht angegeben oder 0 werden alle Ausdrücke ersetzt.
"Übereinstimmungstyp": Eine Zeichenfolge, die angibt, wie der Abgleich durchgeführt wird:
Typ | Beschreibung |
c | Groß- und Kleinschreibung wird beachtet. |
i | Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung. |
m | Mehrzeiliger Modus. Zeilenabschlusszeichen innerhalb der Zeichenfolge werden erkannt. Das Standardverhalten besteht darin, Zeilenabschlusszeichen nur am Anfang und am Ende von "Zeichenfolge" abzugleichen. |
n | Ein Punkt "." wird als Zeilenabschlusszeichen interpretiert: Voreinstellung. |
u | Nur-Unix-Zeilenenden. Nur das Zeilenumbruchzeichen wird von den Übereinstimmungs-Operatoren ".", ",", "^" und "$" als Zeilenende erkannt. |
Wenn innerhalb von "Übereinstimmungstyp" Zeichen angegeben werden, die widersprüchliche Optionen ergeben, hat das rechts-stehende Zeichen Vorrang. | Beispiele für die REGEXP_REPLACE()-Funktion auf MariaDB 10.3 |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
|
SELECT REGEXP_REPLACE('test-abc-abc-abc', 'Test', 'xxxx');
SELECT REGEXP_REPLACE(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4), 'xxxx');
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', '(?i)abc', 'xxx');
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', '(?-i)abc', 'xxx');
SELECT REGEXP_REPLACE('Test Abc','^(.*) (.*)$','\2 = \1');
SELECT REGEXP_REPLACE(null, 'abc', 'xxx');
SELECT REGEXP_REPLACE('test-aa-abc', null, 'xxx');
SELECT REGEXP_REPLACE('test-aa-abc', 'abc', null);
|
|
REGEXP_REPLACE('test-abc-abc-abc', 'Test', 'xxxx') |
|
test-abc-abc-abc |
|
|
REGEXP_REPLACE(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4), 'xxxx') |
|
xxxx-abc-abc-abc |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', '(?i)abc', 'xxx') |
|
test-xxx-xxx-xxx |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', '(?-i)abc', 'xxx') |
|
test-xxx-ABC-aBc |
|
|
REGEXP_REPLACE('Test Abc','^(.*) (.*)$','\2 = \1') |
|
Abc = Test |
|
|
REGEXP_REPLACE(null, 'abc', 'xxx') |
|
NULL |
|
|
REGEXP_REPLACE('test-aa-abc', null, 'xxx') |
|
NULL |
|
|
REGEXP_REPLACE('test-aa-abc', 'abc', null) |
|
NULL |
|
|
| Beispiele für die REGEXP_REPLACE()-Funktion auf MySQL 8.0 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
|
SELECT REGEXP_REPLACE('test-abc-abc-abc', 'Test', 'xxxx');
SELECT REGEXP_REPLACE(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4), cast('xxxx' as char character set utf8mb4));
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', '(?i)abc', 'xxx', 7);
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', '(?-i)abc', 'xxx', 1, 2);
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', 'abc', 'xxx', 1, 3, 'i');
SELECT REGEXP_REPLACE('test-abc-ABC-aBc', 'abc', 'xxx', 1, 0, 'i');
SELECT REGEXP_REPLACE('Test Abc','^(.*) (.*)$','\2 = \1');
SELECT REGEXP_REPLACE(null, 'abc', 'xxx');
SELECT REGEXP_REPLACE('test-aa-abc', null, 'xxx');
SELECT REGEXP_REPLACE('test-aa-abc', 'abc', null);
|
|
REGEXP_REPLACE('test-abc-abc-abc', 'Test', 'xxxx') |
|
test-abc-abc-abc |
|
|
REGEXP_REPLACE(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4), cast('xxxx' as char character set utf8mb4)) |
|
xxxx-abc-abc-abc |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', '(?i)abc', 'xxx', 7) |
|
test-abc-xxx-xxx |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', '(?-i)abc', 'xxx', 1, 2) |
|
test-abc-ABC-aBc |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', 'abc', 'xxx', 1, 3, 'i') |
|
test-abc-ABC-xxx |
|
|
REGEXP_REPLACE('test-abc-ABC-aBc', 'abc', 'xxx', 1, 0, 'i') |
|
test-xxx-xxx-xxx |
|
|
REGEXP_REPLACE('Test Abc','^(.*) (.*)$','\2 = \1') |
|
2 = 1 |
|
|
REGEXP_REPLACE(null, 'abc', 'xxx') |
|
NULL |
|
|
REGEXP_REPLACE('test-aa-abc', null, 'xxx') |
|
NULL |
|
|
REGEXP_REPLACE('test-aa-abc', 'abc', null) |
|
NULL |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der REGEXP_REPLACE() Funktion in MySQL und MariaDB-Datenbanken | In MySQL und MariaDB wird die Funktion REGEXP_REPLACE() verwendet, um Vorkommen eines Musters innerhalb einer Zeichenfolge mithilfe regulärer Ausdrücke zu ersetzen. Es kann somit nach Mustern in einer Zeichenfolge gesucht und diese durch eine angegebene Ersatzzeichenfolge ersetzt werden und kann für Aufgaben wie Datenbereinigung, Textmanipulation und Datentransformation nützlich sein. | | Weitere MySQL und MariaDB SQL Reguläre Ausdrücke | REGEXP | Zeichenkette [NOT] REGEXP Muster | Mehr zur REGEXP-Funktion |
| REGEXP_INSTR | REGEXP_INSTR(Zeichenkette, Muster [, Position] [, Auftreten] [, Rückgabe-Option] [, Übereinstimmungstyp]) | Mehr zur REGEXP_INSTR-Funktion |
| REGEXP_LIKE | REGEXP_LIKE(Zeichenkette, Muster [, Übereinstimmungstyp]) | Mehr zur REGEXP_LIKE-Funktion |
| REGEXP_SUBSTR | REGEXP_SUBSTR(Zeichenkette, Muster [, Position] [, Auftreten] [, Übereinstimmungstyp]) | Mehr zur REGEXP_SUBSTR-Funktion |
| RLIKE | Zeichenkette [NOT] RLIKE Muster | Mehr zur RLIKE-Funktion |
|
|
| | Weitere Informationen zur SQL-Funktion REGEXP_REPLACE: und |
|
|
|
|