REGEXP_INSTR
Gibt die Position eines Treffers für einen regulären Ausdruck in einem String zurück.
PostgreSQL 17.9
REGEXP_INSTR(string, pattern[, start[, occurrence[, endoption[, 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
- endoption
- 0 für die Position, an der der Treffer beginnt (standardmäßig), 1 für die Position direkt nach seinem EndeintegerOptional01
- flags
- Flags, zum Beispiel i, um Groß- und Kleinschreibung zu ignorierentextOptionalbceimnpqstwx
- subexpr
- Nummer der Gruppe in Klammern, deren Position zurückgegeben wird; standardmäßig 0, der ganze TrefferintegerOptional
Rückgabewert
Ganze Zahl, die Position ab 1; 0, wenn es keinen Treffer gibt
Beispiele
Positionen der Treffer
PostgreSQL 17.9
SELECT REGEXP_INSTR('a1b22c333', '[0-9]+') AS FIRST,
REGEXP_INSTR('a1b22c333', '[0-9]+', 1, 2) AS SECOND,
REGEXP_INSTR('a1b22c333', '[0-9]+', 1, 2, 1) AS after_second,
REGEXP_INSTR('abc', '[0-9]') AS not_found;Wo der Nachname beginnt
PostgreSQL 17.9
SELECT member_name,
REGEXP_INSTR(member_name, '[A-Z]', 1, 2) AS last_name_start
FROM FamilyMembers;Details
Die Funktion gibt es seit PostgreSQL 15. Positionen beginnen bei 1. Um einen einfachen Teilstring ohne Muster zu finden, sind STRPOS oder POSITION einfacher.