Referencia de funciones

REGEXP_SUBSTR

Devuelve la subcadena que coincide con una expresión regular.

PostgreSQL 17.9
REGEXP_SUBSTR(string, pattern[, start[, occurrence[, 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
flags
Indicadores, por ejemplo i para no distinguir mayúsculas y minúsculas
textOpcional
bceimnpqstwx
subexpr
Número del grupo entre paréntesis que se devuelve; 0 por defecto, toda la coincidencia
integerOpcional

Valor devuelto

Cadena (text); NULL si no hay coincidencia

Ejemplos

Primer y segundo número

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;
first_numbersecond_number
422024

Dominio de un email mediante un grupo

PostgreSQL 17.9
SELECT email,
	REGEXP_SUBSTR(email, '@(.+)$', 1, 1, '', 1) AS domain
FROM Users
LIMIT 5;
emaildomain
barjam@hotmail.comhotmail.com
tellis@me.comme.com
metzzo@superhotmail.comsuperhotmail.com
ralamosm@verizon.netverizon.net
barjam@hotmail.comhotmail.com

Detalles

La función existe desde PostgreSQL 15. A diferencia de REGEXP_MATCH, devuelve una cadena, no un array. Para indicar subexpr, pasa todos los argumentos anteriores: flags puede ser una cadena vacía ''.

Véase también