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 buscatext
- pattern
- Expresión regulartext
- start
- Posición desde la que se busca, 1 por defectointegerOpcional
- occurrence
- Número de la coincidencia, 1 por defectointegerOpcional
- flags
- Indicadores, por ejemplo i para no distinguir mayúsculas y minúsculastextOpcionalbceimnpqstwx
- subexpr
- Número del grupo entre paréntesis que se devuelve; 0 por defecto, toda la coincidenciaintegerOpcional
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;Dominio de un email mediante un grupo
PostgreSQL 17.9
SELECT email,
REGEXP_SUBSTR(email, '@(.+)$', 1, 1, '', 1) AS domain
FROM Users
LIMIT 5;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 ''.