Expresiones Regulares con MySQL

Elementos

Elementos MySQL
Elementos MySQL

Operativa

Para interactuar con el sistema se envían las consultas sql al analizador de consultas este separa la consulta en parte y analiza la expresión regular

Sintaxis:

Tipo de Operador Ejemplos Descripción

Caracteres Literales.

Coincidencia exacta

a A y 6 % @ Caracteres, Digitos y algunos caracteres especiales que coincidan exactamente
\$ \^ \+ \\ \? Precedencia de un carácter especial con \ para cancelar su significado como expresion regular
\n \t \r Nueva linea, tabulador o enter
\cJ \cG Codigos de Control
\xa3 Codigos hexadecimales para cualquier carácter.

Anclajes

^ El campo empieza por
$ El campo acaba por
[[:<:]] La palabra empieza por
[[:>:]] La palabra acaba por

Grupos de caracteres, cualquier carácter del grupo

[aAeEiou] Cualquier carácter contenido en []
[^aAeEiou] Cualquier carácter excepto los contenidos en []
[a-fA-F0-9] Cualquier carácter hexadecimal (0 a 9 o a hasta f)
. Cualquier caracter
[[:space:]] Cualquier carácter separador (espacio \n \r o \t)
[[:alnum:]] Cualquier carácter alfanumerico

Contadores, actuan sobre elementos previos

+ 1 o mas
* 0 o mas
? 0 o 1
{4} Exactamente 4
{4,} 4 o mas
{4,8} Entre 4 y 8
Añadir una ? Después de cualquier contador para convertirlo
Alternación | o
Agrupamiento () Grupo para contar y guardar la variable

Ejemplos:

Actores cuyo nombre acabe por la letra A

SELECT * FROM actor where first_name REGEXP ‘A$’

Actores que hayan participado en peliculas de animación

SELECT * FROM actor_info where film_info REGEXP ‘Animation:’

Actores que hayan participado en peliculas de animación pero no en peliculas de Accion

SELECT * FROM actor_info where film_info REGEXP ‘Animation: ‘ and not film_info REGEXP ‘Action:’

Todas las peliculas que tengan escenas eliminadas

SELECT * FROM film where special_features regexp ‘Deleted Scenes’ and not special_features regexp ‘trailers’

Todas las direcciones que sean Lane

SELECT * FROM address where address regexp ‘lane’

Todos los alquileres del mes 5 del 2005

SELECT * FROM rental r where rental_date regexp ‘^2005-05’ order by rental_date ASC

Actores cuyo nombre tenga dos vocales seguidas

SELECT * FROM actor a where first_name regexp ‘((a|e|i|o|u){2})’

Fuentes

http://www.wellho.net/regex/mysql.html

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.