Die REGEXP_SUBSTR SQL-Funktion in MySQL und MariaDB - Teilzeichenfolge durch regulären Ausdruck |
|
| REGEXP_SUBSTR | Syntax: | REGEXP_SUBSTR(Zeichenkette, Muster [, Position] [, Auftreten] [, Übereinstimmungstyp]) | Rückgabe-Wert: | CHAR | Funktions-Typ: | Reguläre Ausdrücke | |
| | Die SQL-Funktion REGEXP_SUBSTR() gibt den Teil der "Zeichenfolge" zurück, der mit dem regulären Ausdrucks von "Muster" übereinstimmt.
Wenn das "Muster" nicht gefunden wurde, gibt die Funktion unter MariaDB 10.3 eine leere Zeichenfolge zurück, bei MySQL 8.0 hingegen ist das Ergebnis dann NULL.
Die Funktion beachtet die Groß- und Kleinschreibungsregeln der effektiven Sortierung.
Wenn der Wert von "Zeichenfolge" oder "Muster" NULL ist, ist der Rückgabewert der REGEXP_SUBSTR()-Funktion ebenfalls NULL.
In MySQL akzeptiert REGEXP_SUBSTR() 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": Nach welchem Vorkommen einer Übereinstimmung gesucht werden soll. Der Standardwert ist 1, wenn nicht angegeben.
"Ü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_SUBSTR()-Funktion auf MariaDB 10.3 |
|
SELECT REGEXP_SUBSTR('test-abc-abc-abc', 'Test');
SELECT REGEXP_SUBSTR(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4));
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc');
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)ABC');
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?-i)ABC');
SELECT REGEXP_SUBSTR(null, 'abc');
SELECT REGEXP_SUBSTR('test-aa-abc', null);
|
|
REGEXP_SUBSTR('test-abc-abc-abc', 'Test') |
varchar(16) BINARY |
|
|
|
REGEXP_SUBSTR(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4)) |
varchar(16) BINARY |
test |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc') |
varchar(16) BINARY |
abc |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)ABC') |
varchar(16) BINARY |
abc |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?-i)ABC') |
varchar(16) BINARY |
ABC |
|
|
REGEXP_SUBSTR(null, 'abc') |
varchar(0) BINARY |
NULL |
|
|
REGEXP_SUBSTR('test-aa-abc', null) |
varchar(11) BINARY |
NULL |
|
|
| Beispiele für die REGEXP_SUBSTR()-Funktion auf MySQL 8.0 |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
|
SELECT REGEXP_SUBSTR('test-abc-abc-abc', 'Test');
SELECT REGEXP_SUBSTR(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4));
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc');
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 7);
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 1, 2);
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 1, 3);
SELECT REGEXP_SUBSTR('test-abc-ABC-aBc', 'abc', 1, 2, 'i');
SELECT REGEXP_SUBSTR(null, 'abc');
SELECT REGEXP_SUBSTR('test-aa-abc', null);
|
|
REGEXP_SUBSTR('test-abc-abc-abc', 'Test') |
varchar(16) BINARY |
NULL |
|
|
REGEXP_SUBSTR(cast('test-abc-abc-abc' as char character set utf8mb4), cast('Test' as char character set utf8mb4)) |
varchar(16) BINARY |
test |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc') |
varchar(16) BINARY |
abc |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 7) |
varchar(16) BINARY |
ABC |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 1, 2) |
varchar(16) BINARY |
ABC |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', '(?i)abc', 1, 3) |
varchar(16) BINARY |
aBc |
|
|
REGEXP_SUBSTR('test-abc-ABC-aBc', 'abc', 1, 2, 'i') |
varchar(16) BINARY |
ABC |
|
|
REGEXP_SUBSTR(null, 'abc') |
varchar(0) BINARY |
NULL |
|
|
REGEXP_SUBSTR('test-aa-abc', null) |
varchar(11) BINARY |
NULL |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der REGEXP_SUBSTR() Funktion in MySQL und MariaDB-Datenbanken | In MySQL und MariaDB wird die Funktion REGEXP_SUBSTR() verwendet, um Teilzeichenfolgen aus einer Zeichenfolge basierend auf einem angegebenen regulären Ausdrucksmuster zu extrahieren. Es kann somit nach Mustern innerhalb einer Zeichenfolge gesucht und die passenden Teilzeichenfolgen abgerufen werden. Mit der Funktion können musterbasierte Teilzeichenfolgenextraktionen durchgeführt werden und kann für Aufgaben wie das Extrahieren bestimmter Teile einer Zeichenfolge, das Parsen von Textdaten und das Bearbeiten von Daten basierend auf Mustervergleichen 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_REPLACE | REGEXP_REPLACE(Zeichenkette, Muster, Ersetzen durch [, Position] [, Auftreten] [, Übereinstimmungstyp]) | Mehr zur REGEXP_REPLACE-Funktion |
| RLIKE | Zeichenkette [NOT] RLIKE Muster | Mehr zur RLIKE-Funktion |
|
|
| | Weitere Informationen zur SQL-Funktion REGEXP_SUBSTR: und |
|
|
|
|