Referencia de funciones

REGEXP_MATCHES

Devuelve las coincidencias con una expresión regular: con el indicador g, todas, una fila de resultado por coincidencia.

PostgreSQL 17.9
REGEXP_MATCHES(string, pattern[, flags])
  • [ ]parte opcional
string
Cadena en la que se busca
text
pattern
Expresión regular
text
flags
Indicadores, por ejemplo 'gi'
textOpcional
bcegimnpqstwx

Valor devuelto

Conjunto de arrays text[]; conjunto vacío si no hay coincidencias

Ejemplos

Todos los números de una cadena

PostgreSQL 17.9
SELECT REGEXP_MATCHES('a1b22c333', '[0-9]+', 'g') AS numbers;
numbers
["1"]
["22"]
["333"]

Partes de cada fecha

PostgreSQL 17.9
SELECT REGEXP_MATCHES(
		'2024-03-08, 2025-12-31',
		'([0-9]{4})-([0-9]{2})-([0-9]{2})',
		'g'
	) AS date_parts;
date_parts
["2024","03","08"]
["2025","12","31"]

Mayúsculas de los nombres

PostgreSQL 17.9
SELECT member_name,
	(REGEXP_MATCHES(member_name, '[A-Z]', 'g')) [1] AS capital
FROM FamilyMembers;
member_namecapital
Headley QuinceyH
Headley QuinceyQ
Flavia QuinceyF
Flavia QuinceyQ
Andie QuinceyA
Andie QuinceyQ
Lela QuinceyL
Lela QuinceyQ
Annie QuinceyA
Annie QuinceyQ

Detalles

Cada coincidencia es un array text[]: un elemento por grupo entre paréntesis o un único elemento con toda la coincidencia. Sin el indicador g solo se devuelve la primera coincidencia.

La función devuelve un conjunto de filas, así que en SELECT multiplica una fila de la tabla y, si no hay coincidencias, la fila desaparece del resultado. Para conservar la fila, usa REGEXP_MATCH: devuelve una coincidencia o NULL.

Véase también