Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MariaDB: función REGEXP_REPLACE
Este tutorial de MariaDB explica cómo usar MariaDB Función REGEXP_REPLACE Con sintaxis y ejemplos.
describir
La función MariaDB REGEXP_REPLACE es una extensión de la función REPLACE. Esta función, introducida en MariaDB 10.0.5, le permitirá reemplazar todas las apariciones de subcadenas en una cadena mediante la coincidencia de patrones de expresiones regulares.
sintaxis
La sintaxis de la función REGEXP_REPLACE en MariaDB es:
REGEXP_REPLACE( string, pattern, replacement )
parámetro o parámetro
cadena La cadena a buscar.patrón
Información de coincidencia de expresiones regulares. Puede ser una combinación de lo siguiente:
valor | describir |
---|---|
^ | Coincide con el principio de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincide con el comienzo de una línea en cualquier parte de la expresión. |
PS | Coincide con el final de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincidirá con el final de la línea en cualquier parte de la expresión. |
* | Coincide con cero o más ocurrencias. |
+ | Coincide con una o más coincidencias. |
? | Partido cero o una vez. |
. | Coincide con cualquier carácter excepto NULL. |
| | Use como “O” para especificar múltiples alternativas. |
[ ] | Se utiliza para especificar una lista de coincidencias en la que intenta hacer coincidir cualquiera de los caracteres de la lista. |
[^ ] | Se utiliza para especificar una lista no coincidente en la que está intentando hacer coincidir cualquier carácter excepto los de la lista. |
( ) | Se utiliza para agrupar expresiones en subexpresiones. |
{arroz} | Coincidir m veces. |
{arroz,} | Coincide al menos m veces. |
{Minnesota} | Coincide al menos m veces, pero no más de n veces. |
norte | n es un número entre 1 y 9. Coincide con la n-ésima subexpresión encontrada en ( ) antes de que se encuentre n. |
[..] | Coincide con un elemento de intercalación que puede tener más de un carácter. |
[::] | Coincide con las clases de personajes. |
[==] | Igualar clases de equivalencia. |
D | Coincide con un carácter numérico. |
D | Coincide con caracteres no numéricos. |
w | Coincide con un carácter de palabra. |
W | Coincide con caracteres que no son palabras. |
s | Coincide con un carácter de espacio en blanco. |
S | Coincide con caracteres que no son espacios en blanco. |
*? | Coincide con cero o más ocurrencias del patrón anterior. |
+? | Coincide con una o más apariciones del patrón anterior. |
?? | Coincide con cero o una aparición del patrón anterior. |
{norte}? | Coincide con el patrón anterior n veces. |
{norte,}? | Coincide con el patrón anterior al menos n veces. |
{Nuevo Méjico}? | Haga coincidir el patrón anterior al menos n veces, pero no más de m veces. |
Reemplazar reemplaza la subcadena. Todos los patrones encontrados en la cadena se reemplazan por reemplazo.
notas
- Si la función REGEXP_REPLACE no encuentra ninguna aparición del patrón, devuelve la cadena original sin cambios.
- Esta página se aplica a MariaDB 10.0.5 y versiones posteriores, que utilizan la biblioteca de expresiones regulares PCRE.
- Consulte también la función REEMPLAZAR.
aplicar para
La función REGEXP_REPLACE está disponible en las siguientes versiones de MariaDB:
- MariaDB 10.0.5+
Ejemplo: coincidencia de múltiples alternativas
Primero veamos cómo usar |
Esquema para usar la función REGEXP_REPLACE en MariaDB.
Por ejemplo:
SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8'); Result: 'T8ch8nTh8N8t'
Estos ejemplos de REGEXP_REPLACE reemplazan todas las apariciones de las letras “a”, “e”, “i” u “o” en la cadena “TechOnTheNet” con “8”. La función REGEXP_REPLACE realiza una búsqueda que no distingue entre mayúsculas y minúsculas, por lo que no importa si el valor “a”, “e”, “i” u “o” está en mayúsculas o minúsculas.
búsqueda sensible a mayúsculas y minúsculas
Si queremos realizar una búsqueda que distingue entre mayúsculas y minúsculas, debemos modificar nuestra función REGEXP_REPLACE para usar cadenas binarias.Esto se puede utilizar (?-i)
patrón.
SELECT REGEXP_REPLACE ('TechOnTheNet', '(?-i)a|(?-i)e|(?-i)i|(?-i)o', '8'); Result: 'T8chOnTh8N8t'
En este ejemplo, usamos el (?-i)
El patrón obliga a la función REGEXP_REPLACE a realizar coincidencias de patrones con distinción entre mayúsculas y minúsculas. Así que ahora el carácter “O” en mayúsculas en “TechOnTheNet” no se reemplaza con “8”.
Búsqueda de columna de tabla
Ahora mostremos cómo usar la función REGEXP_REPLACE con las columnas de la tabla:
Supongamos que tenemos una tabla de contactos con los siguientes datos:
Identificación de contacto | apellido |
---|---|
1000 | anderson |
2000 | Herrero |
3000 | Johnson |
Ahora, ejecutemos la siguiente consulta:
SELECT contact_id, last_name, REGEXP_REPLACE (last_name, 'a|e|i|o|u', "z") AS Result FROM contacts;
Estos son los resultados que devolverá la consulta:
Identificación de contacto | apellido | resultado |
---|---|---|
1000 | anderson | carne y verdura |
2000 | Herrero | Sentir |
3000 | Johnson | cumpleaños |
Ejemplo: coincidencia de palabras
A continuación, veamos cómo usar la función REGEXP_REPLACE para reemplazar la primera palabra de una cadena.
Por ejemplo:
SELECT REGEXP_REPLACE ('TechOnTheNet is a great resource', '(\S*)', 'CheckYourMath'); Result: 'CheckYourMath is a great resource'
Este ejemplo devolverá “CheckYourMath es un gran recurso”, ya que reemplazará todos los caracteres que no sean espacios en blanco (\S*)
y se detiene cuando encuentra el primer carácter de espacio en blanco (es decir, el carácter de espacio). Esto hará que la palabra “TechOnTheNet” sea reemplazada por “CheckYourMath”.
Ejemplo: coincidencia de caracteres numéricos
Ahora, veamos cómo usar la función REGEXP_REPLACE para hacer coincidir patrones de caracteres numéricos.
Por ejemplo:
SELECT REGEXP_REPLACE ('7, 8, and 15 are numbers in this example', '\d', 'abc'); Result: 'abc, abc, and abcabc are numbers in this example'
Este ejemplo reemplaza números en una cadena con el “abc” especificado \d
En este caso coincidirá con los números 7, 8 y 15.
Podemos cambiar nuestro patrón para reemplazar solo dos dígitos.
Por ejemplo:
SELECT REGEXP_REPLACE ('7, 8, and 15 are numbers in this example', '(\d)(\d)', 'abc'); Result: '7, 8, and abc are numbers in this example'
Este ejemplo reemplaza los dos dígitos con “abc” para especificar (\d)(\d)
En este caso, se saltará los valores 7 y 8 y solo reemplazará el número 15.
Ahora, veamos cómo usar la función REGEXP_REPLACE con una columna de tabla y buscar dos dígitos.
Por ejemplo:
SELECT REGEXP_REPLACE (address, '\d', '') FROM contacts;
En este ejemplo, eliminaremos todos los números del campo de dirección en la tabla de contactos.Esto se hace buscando todos los números usando \d
y reemplazar con “”.