Referencia de funciones

REGEXP_INSTR

Devuelve la posición de una coincidencia con una expresión regular en una cadena.

PostgreSQL 17.9
REGEXP_INSTR(string, pattern[, start[, occurrence[, endoption[, flags[, subexpr]]]]])
  • [ ]parte opcional
string
Cadena en la que se busca
text
pattern
Expresión regular
text
start
Posición desde la que se busca, 1 por defecto
integerOpcional
occurrence
Número de la coincidencia, 1 por defecto
integerOpcional
endoption
0 para la posición donde empieza la coincidencia (por defecto), 1 para la posición justo después de su final
integerOpcional
01
flags
Indicadores, por ejemplo i para no distinguir mayúsculas y minúsculas
textOpcional
bceimnpqstwx
subexpr
Número del grupo entre paréntesis cuya posición se devuelve; 0 por defecto, toda la coincidencia
integerOpcional

Valor devuelto

Número entero: la posición empezando por 1; 0 si no hay coincidencia

Ejemplos

Posiciones de las coincidencias

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

Dónde empieza el apellido

PostgreSQL 17.9
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

Detalles

La función existe desde PostgreSQL 15. Las posiciones empiezan en 1. Para encontrar una subcadena simple sin patrón, es más sencillo usar STRPOS o POSITION.

Véase también