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: funciones de expresiones regulares
Este tutorial de MariaDB explica cómo usar MariaDB Función de expresión regular Con sintaxis y ejemplos.
describir
La función MariaDB REGEXP le permite realizar coincidencias de expresiones regulares.
sintaxis
La sintaxis de la función REGEXP en MariaDB es:
expression REGEXP pattern
parámetro o parámetro
Expresión Una expresión de carácter, como una columna o un campo.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. |
notas
- La función REGEXP realiza coincidencias sin distinción entre mayúsculas y minúsculas a menos que se use con cadenas binarias.
- Esta página se aplica a MariaDB 10.0.5 y versiones posteriores, que utilizan la biblioteca de expresiones regulares PCRE. Antes de MariaDB 10.0.5, la función REGEXP usaba una biblioteca de expresiones regulares compatible con POSIX 1003.2.
aplicar para
La función REGEXP está disponible en las siguientes versiones de MariaDB:
- MariaDB 10.0.5+
Ejemplo: coincidencia de múltiples alternativas
Primero veamos cómo usar |
El esquema de la función REGEXP en MariaDB.
Por ejemplo:
SELECT product_name FROM products WHERE product_name REGEXP 'P(a|e|i)n';
Este ejemplo de REGEXP devolverá todos los productos cuyo product_name sea Pan, Pen o Pin.Esta |
El patrón nos dice que busquemos la letra “a”, “e” o “i”.
Ejemplo: coincidencia al principio
A continuación, usemos la función REGEXP para hacer coincidir el comienzo de la cadena.
Por ejemplo:
SELECT product_id, product_name FROM products WHERE product_name REGEXP '^P';
Este ejemplo de REGEXP utiliza ^
Coincide con un patrón al principio de la cadena. Devolverá todos los valores de product_id y product_name cuyo product_name comience con “P”.
Dado que la función REGEXP no distingue entre mayúsculas y minúsculas (a menos que sea una cadena binaria), es equivalente a lo siguiente:
SELECT product_id, product_name FROM products WHERE product_name REGEXP '^p';
Ambas consultas devolverán los mismos resultados.
Ejemplo: final del partido
A continuación, usemos la función REGEXP para hacer coincidir el final de la cadena.
Por ejemplo:
SELECT * FROM products WHERE product_name REGEXP 'n$';
Este ejemplo de REGEXP utiliza $
Coincide con el patrón al final de la cadena. Devolverá todos los productos cuyo product_name termine en “n”.
Ejemplo: lista de discrepancias
A continuación, usemos la función REGEXP para definir una lista de discrepancias. Esto significa que está tratando de hacer coincidir cualquier carácter excepto los caracteres de la lista.
Por ejemplo:
SELECT * FROM products WHERE product_name REGEXP 'P[^a]n';
Este ejemplo utiliza [^]
patrón para que coincida con cualquier carácter excepto los enumerados. Devolverá todos los registros en la tabla de productos donde el primer carácter de product_name es “P”, el segundo carácter no es “a” y el tercer carácter es “n”. Esto incluiría valores como “Pen”, “Pin”, “Pon” o “Pun”, pero excluiría el valor “Pan” del conjunto de resultados.
Puede complicar aún más este ejemplo agregando varios caracteres no coincidentes.
Por ejemplo:
SELECT * FROM products WHERE product_name REGEXP 'P[^ai]n';
Este ejemplo devuelve todos los registros en la tabla de productos donde el primer carácter de product_name es “P”, el segundo carácter no es “a” ni “i” y el tercer carácter es “n”. Esto incluiría valores como “Pen”, “Pon” o “Pun”, pero excluiría los valores “Pan” y “Pin” del conjunto de resultados.
Ejemplo: clases de caracteres coincidentes
A continuación, veamos cómo usar la función REGEXP para hacer coincidir las clases de caracteres en MariaDB.
Puede usar las siguientes clases de caracteres con la función REGEXP en MariaDB:
clase de personaje | describir |
---|---|
aluminio | caracteres alfanuméricos |
alfa | caracteres alfabéticos |
Blanco | espacios en blanco |
control | personajes de control |
número | número |
gráficos | caracteres gráficos |
reducir | caracteres en minúsculas |
Impresión | carácter gráfico o espacial |
punto | Puntuación |
espacio | Caracteres como retorno de carro, avance de línea, espacio y tabulación |
superior | letras mayúsculas |
número | número hexadecimal |
Veamos un ejemplo de cómo usar la función REGEXP para hacer coincidir las clases de caracteres.
Por ejemplo:
SELECT * FROM contacts WHERE address REGEXP '123[:alnum:]*';
En este ejemplo, la función REGEXP devolverá todos los registros en la tabla de contactos con direcciones que comienzan con 123 y el resto de los caracteres son caracteres alfanuméricos.
Ejemplo: caracteres de escape
El último ejemplo explicará cómo escapar de los caracteres especiales cuando se usa la función REGEXP en MariaDB.Para escapar de los caracteres especiales usando la función REGEXP, debe preceder el carácter especial con dos barras invertidas \
.
Por ejemplo:
SELECT * FROM products WHERE product_name REGEXP '\(';
En este ejemplo escapamos (
carácter, por lo que la función REGEXP devolverá todos los registros en la tabla de productos que contienen product_name (
Características.