REGEXP_SUBSTR
Gibt den Teilstring zurück, der zu einem regulären Ausdruck passt.
PostgreSQL 17.9
REGEXP_SUBSTR(string, pattern[, start[, occurrence[, flags[, subexpr]]]])- [ ]optionaler Teil
- string
- String, in dem gesucht wirdtext
- pattern
- Regulärer Ausdrucktext
- start
- Position, ab der gesucht wird, standardmäßig 1integerOptional
- occurrence
- Nummer des Treffers, standardmäßig 1integerOptional
- flags
- Flags, zum Beispiel i, um Groß- und Kleinschreibung zu ignorierentextOptionalbceimnpqstwx
- subexpr
- Nummer der Gruppe in Klammern, die zurückgegeben wird; standardmäßig 0, der ganze TrefferintegerOptional
Rückgabewert
String (text); NULL, wenn es keinen Treffer gibt
Beispiele
Erste und zweite Zahl
PostgreSQL 17.9
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.9
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.