REGEXP_SUBSTR
Devuelve la subcadena que coincide con una expresión regular.
MySQL 8.4
REGEXP_SUBSTR(expr, pattern[, pos[, occurrence[, match_type]]])- [ ]parte opcional
- expr
- Cadena en la que se buscaVARCHAR
- pattern
- Expresión regularVARCHAR
- pos
- Posición desde la que se busca, de 1 a la longitud de la cadena + 1; por defecto, 1INTOpcional
- occurrence
- Número de la coincidencia; por defecto, 1 (la primera)INTOpcional
- match_type
- Indicadores de coincidencia; se pueden combinarVARCHAROpcionalcimnu
Valor devuelto
Subcadena coincidente; NULL si no hay coincidencia o si expr o pattern es NULL
Ejemplos
Fecha a partir de una cadena
MySQL 8.4
SELECT REGEXP_SUBSTR(
'Order from 2024-03-08',
'[0-9]{4}-[0-9]{2}-[0-9]{2}'
);Tercer número de la cadena
MySQL 8.4
SELECT REGEXP_SUBSTR('a1b22c333', '[0-9]+', 1, 3);Calle a partir de la dirección
MySQL 8.4
SELECT address,
REGEXP_SUBSTR(address, '[^, ][^,]*', 1, 2) AS street
FROM Rooms
LIMIT 5;Detalles
Los grupos entre paréntesis no se devuelven por separado: el resultado es la coincidencia entera. Para obtener solo una parte de la coincidencia, acota la expresión o usa REGEXP_REPLACE con $1. pos debe estar entre 1 y la longitud de la cadena + 1: con 0 o con un valor mayor, la función da un error.