mysql | Expresiones regulares (Regexp)

MySQL admite otro tipo de operación de coincidencia de patrones basada en las expresiones regulares y el operador REGEXP.

  1. Proporciona una coincidencia de patrones potente y flexible que puede ayudarnos a implementar utilidades de búsqueda potentes para nuestros sistemas de bases de datos.
  2. REGEXP es el operador que se usa cuando se realizan coincidencias de patrones de expresiones regulares. RLIKE es el sinónimo.
  3. También admite una serie de metacaracteres que permiten una mayor flexibilidad y control al realizar la coincidencia de patrones.
  4. La barra invertida se utiliza como carácter de escape. Solo se considera en la coincidencia de patrones si se han utilizado barras invertidas dobles.
  5. No entre mayúsculas y minúsculas.
Patrón Lo que coincide con el patrón
* Cero o más instancias de string que lo preceden
+ Una o más instancias de strings que lo preceden
. Cualquier personaje individual
? Coincide con cero o una instancia de las strings que lo preceden.
^ caret(^) coincide con el comienzo de la string
ps fin de string
[a B C] Cualquier carácter enumerado entre los corchetes
[^ abc] Cualquier carácter que no figure entre corchetes
[ARIZONA] coincidir con cualquier letra mayúscula.
[Arizona] coincidir con cualquier letra minúscula
[0-9] coincidir con cualquier dígito del 0 al 9.
[[:<:]] coincide con el principio de las palabras.
[[:>:]] coincide con el final de las palabras.
[:clase:] coincide con una clase de carácter, es decir, [:alpha:] para coincidir con letras, [:space:] para coincidir con espacios en blanco, [:punct:] coincide con puntuaciones y [:upper:] para letras de clase superior.
p1|p2|p3 Alternancia; coincide con cualquiera de los patrones p1, p2 o p3
{norte} n instancias del elemento precedente
{Minnesota} m a n instancias del elemento anterior

Ejemplos con explicación:

  • Coincidir con el comienzo de la string (^):
    proporciona todos los nombres que comienzan con ‘sa’. Ejemplo: sam, samarth.
    SELECT name FROM student_tbl WHERE name REGEXP '^sa';
    
  • Hacer coincidir el final de una string ($):
    da todos los nombres que terminan con ‘on’. Ejemplo: norton, merton.
    SELECT name FROM student_tbl WHERE name REGEXP 'on$';
    
  • Coincide con cero o una instancia de las strings que lo preceden (?):
    da todos los títulos que contienen ‘com’. Ejemplo: comedia, comedia romántica.
    SELECT title FROM movies_tbl WHERE title REGEXP 'com?'; 
    
  • coincide con cualquiera de los patrones p1, p2 o p3(p1|p2|p3):
    proporciona todos los nombres que contienen ‘be’ o ‘ae’. Ejemplo: Abel, Baer.
    SELECT name FROM student_tbl WHERE name REGEXP 'be|ae' ;
    
  • Coincide con cualquier carácter enumerado entre corchetes ([abc]):
    proporciona todos los nombres que contienen ‘j’ o ‘z’. Ejemplo: Lorentz, Rajs.
    SELECT name FROM student_tbl WHERE name REGEXP '[jz]' ;
    
  • Coincide con cualquier letra minúscula entre ‘a’ y ‘z’- ([az]) ([az] y (.)):
    recupera todos los nombres que contienen una letra en el rango de ‘b’ y ‘g’, seguida de cualquier carácter, seguido de la letra ‘a’. Ejemplo: Tobias, sewall.

    Coincide con cualquier carácter único (.)

    SELECT name FROM student_tbl WHERE name REGEXP '[b-g].[a]' ;
    
  • Coincide con cualquier carácter que no aparezca entre corchetes.([^abc]):
    Da todos los nombres que no contienen ‘j’ o ‘z’. Ejemplo: nerton, sewall.
    SELECT name FROM student_tbl WHERE name REGEXP '[^jz]' ;
    
  • Coincide con el final de las palabras[[:>:]]:
    da todos los títulos que terminan con el carácter «ack». Ejemplo: negro.
    SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]'; 
    
  • Coincide con el comienzo de las palabras[[:<:]]:
    da todos los títulos que comienzan con el carácter «para». Ejemplo: olvidar a Sarah Marshal.
    SELECT title FROM movies_tbl WHERE title REGEXP '[[:<:]]for'; 
    
  • Coincide con una clase de carácter[:clase:]:
    es decir, [:lower:]- carácter en minúscula,[:digit:] – caracteres de dígitos, etc.
    Proporciona todos los títulos que contienen caracteres alfabéticos solamente. Ejemplo: cosas más extrañas, Vengadores.
    SELECT title FROM movies_tbl WHERE REGEXP '[:alpha:]' ;
    

Publicación traducida automáticamente

Artículo escrito por shreyanshi_arun y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *