REGEXP_SUBSTR
Gibt den Teilstring zurück, der zu einem regulären Ausdruck passt.
PostgreSQL 17.5
REGEXP_SUBSTR(string, pattern[, start[, occurrence[, flags[, subexpr]]]])Parameter
- stringtext
- String, in dem gesucht wird
- patterntext
- Regulärer Ausdruck
- startintegeroptional
- Position, ab der gesucht wird, standardmäßig 1
- occurrenceintegeroptional
- Nummer des Treffers, standardmäßig 1
- flagstextoptional
- Flags, zum Beispiel i, um Groß- und Kleinschreibung zu ignorieren
- subexprintegeroptional
- Nummer der Gruppe in Klammern, die zurückgegeben wird; standardmäßig 0, der ganze Treffer
Rückgabewert
String (text); NULL, wenn es keinen Treffer gibt
Beispiele
Erste und zweite Zahl
PostgreSQL 17.5
SELECT REGEXP_SUBSTR('Order 42 from 2024-03-08', '[0-9]+') AS first_number,
REGEXP_SUBSTR('Order 42 from 2024-03-08', '[0-9]+', 1, 2) AS second_number;Domain aus E-Mail über eine Gruppe
PostgreSQL 17.5
SELECT email,
REGEXP_SUBSTR(email, '@(.+)$', 1, 1, '', 1) AS domain
FROM Users
LIMIT 5;Details
Die Funktion gibt es seit PostgreSQL 15. Anders als REGEXP_MATCH gibt sie einen String zurück, kein Array. Um subexpr anzugeben, übergibst du alle Argumente davor: flags darf ein leerer String '' sein.