¿Cómo coinciden las expresiones regulares de la base de datos MySQL? MySQL regexp como uso

Directorio de artículos

¿Cómo realizar coincidencias de expresiones regulares en una base de datos MySQL ? ¿Cómo usar expresiones regulares de MySQL ?

expresiones regulares mysql

En capítulos anteriores, aprendimos que MySQL puede usar LIKE …% para la coincidencia aproximada.

MySQL también admite la coincidencia de otras expresiones regulares.El operador REGEXP se usa en MySQL para la coincidencia de expresiones regulares.

Si conoce PHP o Perl, es bastante sencillo, ya que la comparación de expresiones regulares de MySQL es similar a la de estos scripts.

Los patrones regulares de la siguiente tabla se pueden aplicar al operador REGEXP.

El modoDescripción
^Coincide con el comienzo de la cadena de entrada.^ también coincide con la posición después de '\n' o '\r' si se establece la propiedad Multiline del objeto RegExp.
$Coincide con el final de la cadena de entrada.Si se establece la propiedad Multiline del objeto RegExp, $ también coincide con la posición anterior a '\n' o '\r'.
.Coincide con cualquier carácter individual excepto "\n".Para hacer coincidir cualquier carácter, incluido '\n', use un patrón como '[.\n]'.
[...]colección de personajes.Coincide con cualquiera de los caracteres contenidos.Por ejemplo, '[abc]' coincidiría con "plai'a' en n".
[^…]Conjunto de caracteres negativos.Coincide con cualquier carácter no contenido.Por ejemplo, '[^abc]' coincidiría con 'p' en "simple".
p1|p2|p3Coincide con p1 o p2 o p3.Por ejemplo, 'z|comida' coincidiría con "z" o "comida". '(z|f)ood' coincide con "zood" o "comida".
*Coincide con la subexpresión anterior cero o más veces.Por ejemplo, zo* coincidiría tanto con "z" como con "zoo". * es equivalente a {0,}.
+Coincide con la subexpresión anterior una o más veces.Por ejemplo, 'zo+' coincidiría con "zo" y "zoo", pero no con "z". + es equivalente a {1,}.
{norte}n es un entero no negativo.Coincide exactamente n veces.Por ejemplo, 'o{2}' no coincidiría con la 'o' de "Bob", pero coincidiría con las dos o de "comida".
{Nuevo Méjico}Tanto m como n son números enteros no negativos, donde n <= m.Coincide al menos n veces y como máximo m veces.

Ejemplo

Después de comprender los requisitos regulares anteriores, podemos escribir declaraciones SQL con expresiones regulares de acuerdo con nuestros propios requisitos.A continuación, enumeraremos algunos pequeños ejemplos (nombre de la tabla: person_tbl) para profundizar nuestra comprensión:

Encuentre todos los datos que comienzan con 'st' en el campo de nombre:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Encuentre todos los datos que terminan con 'ok' en el campo de nombre:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Encuentre todos los datos que contengan la cadena 'mar' en el campo de nombre:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Encuentre todos los datos en el campo de nombre que comiencen con un carácter de vocal o terminen con la cadena 'ok':

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Ir al Inicio