Función REGEXP_REPLACE en Oracle

La función REGEXP_REPLACE en Oracle reemplaza una secuencia de caracteres que coincide con un patrón de expresión regular con otra cadena. La función REGEXP_REPLACE es una versión avanzada de la función REPLACE. La función devuelve un valor de cadena.

Sintaxis

Escribe la siguiente sintaxis para utilizarlo:

REGEXP_REPLACE ( cadena, patrón_de_busqueda
                 [, cadena_remplazo
                    [, inicio_posición
                       [, n_ocurrencia
                          [, parametro_coincidencia ]
                       ]
                    ]
                 ]
               )
  • REGEXP_REPLACE: nombre de la función.
  • cadena: es la cadena de entrada para buscar el patrón.
  • patrón_de_busqueda: es una expresión regular. Puede ser una o la combinación de las siguientes expresiones:
ValorDescripción
^Coincide con el comienzo de una cadena. Si se utiliza con un parámetro de coincidencia de ‘m’, coincide con el inicio de una línea en cualquier lugar dentro de la expresión.
$Coincide con el final de una cuerda. Si se utiliza con un parámetro match_parameter de ‘m’, coincide con el final de una línea en cualquier lugar dentro de la expresión.
*Coincide con cero o más ocurrencias.
+Coincide con una o más ocurrencias.
?Coincide con cero o una ocurrencia.
.Coincide con cualquier carácter excepto NULL.
|Se utiliza como un “OR” para especificar más de una alternativa.
[ ]Se utiliza para especificar una lista coincidente en la que intentas hacer coincidir cualquiera de los caracteres de la lista.
[^ ]Se utiliza para especificar una lista no coincidente en la que intentas coincidir cualquier carácter, excepto los de la lista.
( )Se utiliza para agrupar expresiones como una subexpresión.
{m}Coincide con m veces.
{m,}Coincide al menos m veces.
{m,n}Coincide al menos m veces, pero no más de n veces.
\nN es un número entre 1 y 9. Coincide con la enésima subexpresión encontrada dentro de ( ) antes de encontrar \n.
[..]Coincide con un elemento de intercalación que puede tener más de un carácter.
[::]Partidos de clases de personajes.
[==]Clases de equivalencia de partidos.
\dCoincide con un carácter de dígito.
\DCoincide con un carácter sin dígito.
\wCoincide con un carácter de palabra.
\WCoincide con un carácter que no sea una palabra.
\sCoincide con un carácter de espacio en blanco.
\SCoincide con un carácter que no sea espacio en blanco.
\ACoincide con el comienzo de una cadena o coincide al final de una cadena antes de un carácter de nueva línea.
\ZCoincidencias al final de una cuerda.
*?Coincide con el patrón anterior cero o más ocurrencias.
+?Coincide con el patrón anterior con una o más ocurrencias.
??Coincide con el patrón anterior cero o una ocurrencia.
{n}?Coincide con el patrón anterior n veces.
{n,}?Coincide con el patrón anterior al menos n veces.
{n,m}?Coincide con el patrón anterior al menos n veces, pero no más de m veces.
  • cadena_remplazo: opcional. Los patrones coincidentes se reemplazarán con la cadena_remplazo en la cadena. Si se omite el parámetro cadena_remplazo, la función simplemente elimina todos los patrones coincidentes y devuelve la cadena resultante.
  • inicio_posición: opcional. Es la posición en la cadena donde comenzará la búsqueda. Si se omite, el valor predeterminado es 1, que es la primera posición en la cadena.
  • n_ocurrencia: opcional. Es la enésima aparición del patrón en la cuerda. Si se omite, el valor predeterminado es 1, que es la primera aparición de patrón en la cadena. Si especifica 0 para este parámetro, todas las apariencias del patrón se reemplazarán en cadena.
  • parametro_coincidencia: opcional. Le permite modificar el comportamiento de coincidencia para la función REGEXP_INSTR. Puede ser una combinación de lo siguiente:
ValorDescripción
‘c’Realiza una coincidencia que distingue entre mayúsculas y minúsculas.
‘i’Realiza una coincidencia sin mayúsculas y minúsculas.
‘n’Permite que el punto (.), que es el carácter que coincide con cualquier carácter, coincida con el carácter de nueva línea. Si omite este parámetro, entonces el punto (.) no coincide con el carácter de la nueva línea.
‘m’La función trata la cadena como varias líneas. La función interpreta el signo de dólar (^) y el signo de dólar ($) como el principio y el final, respectivamente, de cualquier línea en cualquier lugar de la cadena, en lugar de solo al principio o al final de toda la cadena. Si omite este parámetro, la función trata la cadena de origen como una sola línea.
‘x’Ignora los caracteres de espacio en blanco. De forma predeterminada, los caracteres de espacio en blanco coinciden entre sí mismos.

Ejemplos

En el siguiente ejemplo utilizamos la función regex_replace para encontrar a primera palabra y sustituirla por MiguelTroyano.com

SELECT
    REGEXP_REPLACE ('XYZ es una gran página web', '^(\S*)', 'MiguelTroyano.com') RESULTADO
FROM 
    dual;

En este otro ejemplo utilizamos la función regex_replace para encontrar dígitos y sustituirlos por el carácter #

SELECT
    REGEXP_REPLACE ('1, 5, o 1000 articulos hay escritos en esta web', '\d', '#') RESULTADO
FROM 
    dual;

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.