sql >> Base de Datos >  >> RDS >> PostgreSQL

Grupo de captura de expresiones regulares de PostgreSQL en select

Si está tratando de capturar la coincidencia de expresiones regulares que resultó de la expresión, entonces substring haría el truco:

select substring ('I have a dog', 'd[aeiou]g')

Devolvería cualquier coincidencia, en este caso "perro".

Creo que el eslabón perdido de lo que estabas intentando anteriormente era que necesitas poner la expresión que quieres capturar entre paréntesis. regexp_matches funcionaría en este caso (si hubiera incluido paréntesis alrededor de la expresión que deseaba capturar), pero devolvería una matriz de texto con cada coincidencia. Si es una coincidencia, substring es algo conveniente.

Entonces, volviendo a tu ejemplo, si estás tratando de devolver stuff si y solo si está al principio de una columna:

select substring (column, '^(stuff)')

o

select (regexp_matches (column, '^(stuff)'))[1]