REGEXP_SUBSTR
Gibt den Teilstring zurück, der zu einem regulären Ausdruck passt.
MySQL 8.1
REGEXP_SUBSTR(expr, pattern[, pos[, occurrence[, match_type]]])Parameter
- exprVARCHAR
- String, in dem gesucht wird
- patternVARCHAR
- Regulärer Ausdruck
- posINToptional
- Position, ab der gesucht wird, von 1 bis zur Länge des Strings + 1, standardmäßig 1
- occurrenceINToptional
- Nummer des Treffers, standardmäßig 1 (der erste)
- match_typeVARCHARoptional
- Flags wie bei REGEXP_LIKE, zum Beispiel c für die Beachtung von Groß- und Kleinschreibung
Rückgabewert
Passender Teilstring; NULL, wenn es keinen Treffer gibt oder expr oder pattern NULL ist
Beispiele
Datum aus einem String
MySQL 8.1
SELECT REGEXP_SUBSTR(
'Order from 2024-03-08',
'[0-9]{4}-[0-9]{2}-[0-9]{2}'
);Dritte Zahl im String
MySQL 8.1
SELECT REGEXP_SUBSTR('a1b22c333', '[0-9]+', 1, 3);Straße aus der Adresse
MySQL 8.1
SELECT address,
REGEXP_SUBSTR(address, '[^, ][^,]*', 1, 2) AS street
FROM Rooms
LIMIT 5;Details
Gruppen in Klammern werden nicht einzeln zurückgegeben: Das Ergebnis ist der ganze Treffer. Um nur einen Teil des Treffers zu erhalten, grenze den Ausdruck ein oder verwende REGEXP_REPLACE mit $1. pos muss zwischen 1 und der Länge des Strings + 1 liegen: Bei 0 und bei einem größeren Wert gibt die Funktion einen Fehler aus.