SQL Academy
Premium
Funktionsreferenz

REGEXP_INSTR

Gibt die Position eines Treffers für einen regulären Ausdruck in einem String zurück.

PostgreSQL 17.5
REGEXP_INSTR(string, pattern[, start[, occurrence[, endoption[, 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
endoptionintegeroptional
0 für die Position, an der der Treffer beginnt (standardmäßig), 1 für die Position direkt nach seinem Ende
flagstextoptional
Flags, zum Beispiel i, um Groß- und Kleinschreibung zu ignorieren
subexprintegeroptional
Nummer der Gruppe in Klammern, deren Position zurückgegeben wird; standardmäßig 0, der ganze Treffer

Rückgabewert

Ganze Zahl, die Position ab 1; 0, wenn es keinen Treffer gibt

Beispiele

Positionen der Treffer

PostgreSQL 17.5
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;
firstsecondafter_secondnot_found
2460

Wo der Nachname beginnt

PostgreSQL 17.5
SELECT member_name,
	REGEXP_INSTR(member_name, '[A-Z]', 1, 2) AS last_name_start
FROM FamilyMembers;
member_namelast_name_start
Headley Quincey9
Flavia Quincey8
Andie Quincey7
Lela Quincey6
Annie Quincey7
Ernest Forrest8
Constance Forrest11
Wednesday Addams11

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.

Siehe auch