logo

Función MySQL REGEXP_REPLACE()

La función MySQL REGEXP_REPLACE() se utiliza para la coincidencia de patrones. Esta función busca en una cadena un patrón de expresión regular y reemplaza cada aparición del patrón con la cadena especificada que coincide con el patrón de expresión regular dado. Si se encuentra la coincidencia, devuelve la cadena completa junto con los reemplazos. Si no se encuentra ninguna coincidencia, la cadena devuelta no cambia. Si la expresión, los patrones y la cadena de reemplazo son NULL, la función devolverá NULL.

REGEXP_REPLACE(), REEMPLAZAR(), y la TRADUCCIÓN() funcionar en mysql funcionan igual, excepto que TRANSLATE nos permite hacer múltiples sustituciones de un solo carácter y la función REPLACE reemplaza una cadena completa con otra cadena, mientras que REGEXP_REPLACE busca una cadena para un patrón de expresión regular.

Sintaxis

La siguiente es una sintaxis básica para usar esta función en MySQL:

 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

Explicación del parámetro

La explicación de los parámetros de la función REGEXP_REPLACE() es:

expresión: Es una cadena de entrada en la que realizaremos búsquedas a través de parámetros y funciones de expresiones regulares.

patrones: Representa el patrón de expresión regular para una subcadena.

reemplazar_cadena: Es una subcadena que se sustituirá si se encuentra la coincidencia.

La función REGEXP_INSTR() utiliza varios parámetros opcionales que se detallan a continuación:

pos: Se utiliza para especificar la posición en la expresión dentro de la cadena para iniciar la búsqueda. Si no especificamos este parámetro, comenzará en la posición 1.

ocurrencia: Se utiliza para especificar qué aparición de una coincidencia vamos a buscar. Si no especificamos este parámetro, se reemplazan todas las apariciones.

tipo de concordancia: Es una cadena que nos permite refinar la expresión regular. Utiliza los siguientes caracteres posibles para realizar coincidencias.

    C:Representa una coincidencia que distingue entre mayúsculas y minúsculas.i:Representa una coincidencia que no distingue entre mayúsculas y minúsculas.metro:Representa un modo de múltiples líneas que permite terminadores de línea dentro de la cadena. De forma predeterminada, esta función hace coincidir los terminadores de línea al principio y al final de la cadena.norte:Se utiliza para modificar el . Carácter (punto) para que coincida con los terminadores de línea.en:Representa finales de línea sólo para Unix.

Entendámoslo con varios ejemplos.

Ejemplo

La siguiente declaración explica el ejemplo básico de la función REGEXP_REPLACE en MySQL.

 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

Aquí está el resultado:

Función MySQL REGEXP_REPLACE()

Supongamos que nuestra cadena de entrada contiene múltiples coincidencias dentro de la cadena , entonces esta función los reemplazará a todos. Vea las siguientes declaraciones:

significado de la comisión de selección de personal
 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String'; 

Aquí está el resultado:

Función MySQL REGEXP_REPLACE()

Si la cadena de entrada y la cadena reemplazable no coinciden, las declaraciones devuelven la cadena original. Vea el siguiente ejemplo:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String'; 

Aquí está el resultado:

Función MySQL REGEXP_REPLACE()

Si queremos reemplazar la cadena por especificando la posición Para iniciar el reemplazo, podemos usar la función REGEX_REPLACE de la siguiente manera:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

En esta declaración, hemos especificado la posición como 2 para iniciar el reemplazo. Al ejecutar esta consulta, obtendremos el siguiente resultado donde podemos ver que la primera posición de la cadena reemplazable no se reemplaza.

Función MySQL REGEXP_REPLACE()

Sabemos que todas las apariciones de la cadena coincidente se reemplazan de forma predeterminada. Sin embargo, también tenemos una opción para especificar la ocurrencia específica para reemplazar la cadena coincidente usando el ocurrencia parámetro. Vea el siguiente ejemplo:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String'; 

En este ejemplo, la posición inicial de la cadena reemplazable es 2 y apareció después de que comenzara la primera aparición. Por lo tanto, la ocurrencia 2 se convirtió en la ocurrencia 1 y la ocurrencia 3 se convirtió en la ocurrencia 2. Consulte el resultado a continuación:

Función MySQL REGEXP_REPLACE()

Podemos proporcionar un parámetro adicional para refinar la expresión regular utilizando argumentos de tipo de coincidencia. Por ejemplo , podemos usarlo para verificar si la coincidencia distingue entre mayúsculas y minúsculas o incluye terminadores de línea. Vea el siguiente ejemplo donde especificamos un distingue mayúsculas y minúsculas y coincidencia que no distingue entre mayúsculas y minúsculas:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'c') AS ' Case-Sensitive', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'i') AS ' Case-Insensitive'; 

Aquí está el resultado:

Función MySQL REGEXP_REPLACE()