Base de datos, Funciones, Funciones de Cadena, PostgreSQLBase de datos, Funciones de Cadena, Funciones PostgreSQL, PostgreSQL
La función REGEXP_REPLACE en PostgreSQL nos devuelve un texto sustituyendo la palabra que coincida con la expresión regular. Esta función esta englobada en las denominadas funciones de cadena.
Sintaxis
Escribe la siguiente sintaxis para utilizarlo:
REGEXP_REPLACE(cadena, patron, remplazo [, indicador])
- REGEXP_REPLACE: es el nombre de la función.
- cadena: cadena a buscar.
- patrón: expresión regular.
- remplazo: cadena por la que se sustituirá.
- indicador: parametro para indicarle opciones, en la mayoría de caso de utiliza el indicador g, ya que de lo contrario solo devolvería un resultado.
Ejemplo
Cambiar orden de palabras
En el siguiente ejemplo puedes observar como la columna nombre de la tabla empleados contiene el nombre y el apellido del empleado, pero necesitamos convertirlo al formato apellido, nombre:
SELECT nombre, REGEXP_REPLACE(nombre,'(.*) (.*)','\2, \1') from empleados;

Eliminar letras
En el siguiente ejemplo eliminamos las letras del texto ‘ABC12345xyz’. :
SELECT REGEXP_REPLACE('ABC12345xyz','[[:alpha:]]','','g');
- [[:alpha:]]: coincide con cualquier letra.
- ”; sustituimos las letras encontradas por un vacío.
- g: para que sustituya todas las letras que encuentre, no solo la primera.

Eliminar dígitos
En el siguiente ejemplo eliminamos los dígitos del texto ‘ABC12345xyz’. :
SELECT REGEXP_REPLACE('ABC12345xyz','[[:digit:]]','','g');
- [[:digit:]]: coincide con cualquier digito.
- ”; sustituimos los dígitos encontradas por un vacío.
- g: para que sustituya todas las letras que encuentre, no solo la primera.

Eliminar espacios
En el siguiente ejemplo eliminamos los espacios escritos de mas:
SELECT REGEXP_REPLACE('Miguel Troyano no sabe escribir','( ){2,}',' ','g');
- ‘( ){2,}’: busca el espacio cuando ocurra mas de dos veces seguidas.
- ‘ ‘; sustituimos cuando encuentre un resultado por un espacio.
- g: para que sustituya todas las veces que lo encuentra.
