Expresiones Regulares mySQL

Páginas: 6 (1256 palabras) Publicado: 20 de septiembre de 2015
Palabras clave REGEXP y RLIKE
La comparación entre una cadena de texto y una expresión regular se realiza con la palabra clave REGEXP. También se puede utilizar indistintamente el sinónimo RLIKE.
Así, por ejemplo, para seleccionar todos los campos de la tabla “usuarios” en donde el campo  “nombre” empieza por una vocal, podemos utilizar la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP'^[aeiouAEIOU]';
o bien
SELECT * FROM usuarios WHERE nombre RLIKE '^[aeiouAEIOU]';
En la expresión regular utilizada en el ejemplo, el carácter especial “^” indica el comienzo de la cadena. El primer carácter de los nombres coincidentes puede ser cualquiera de los indicados en el interior de los corchetes cuadrados.
Caracteres especiales en expresiones regulares
“^” y “$” – Comienzo y fin de lacadena
Ya hemos visto que el carácter “^” indica el comienzo de la cadena. De la misma forma, “$” indica el final de la misma. Así, para seleccionar todos los nombres que terminan en vocal en la tabla usuarios del ejemplo, utilizaríamos la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP '[aeiouAEIOU]$';
“.” – Coincidencia con cualquier carácter
El carácter especial “.” coincide con cualquiercarácter que aparezca en la cadena. Por ejemplo, para seleccionar todos los nombres de tres caracteres, sean cuales sean, podemos utilizar la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP '^...$';
La expresión regular en este caso indica que el comienzo de la cadena (“^”) debe ir seguido de cualquier carácter (“.”),  cualquier carácter (“.”),  cualquier carácter (“.”), y el fin de la cadena(“$”).
“?”, “+” y “*” – Indicadores de repetición
El carácter especial “?” en una expresión regular indica que el carácter que le precede puede aparecer cero o una veces en la cadena
El carácter especial “+” indica que el carácter que le precede puede aparecer una o más veces en la cadena
Por último, el carácter “*” indica que el carácter que le precede puede aparecer cero, una o más veces en lacadena.
Por ejemplo, para seleccionar todos los nombres que empiezan por A y terminan en “o” o en “os”, podemos utilizar la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP '^A.*os?$';
La expresión regular indica que el comienzo de la cadena (“^”) debe ir seguido de una “A” (“A”), seguida de cualquier carácter (“.”) cero o más veces (“*”), seguidos de una “o”, opcionalmente seguida de una “s”(“s?”) al final de la cadena (“$”).
Si queremos que los nombres seleccionados contengan al menos un carácter entre la “A” inicial y la “o”, utilizaríamos en su lugar la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP '^A.+os?$';
{n,m} – Indicador genérico de repetición
Con la construcción {n}, expresamos que el carácter precedente debe aparecer exactamente n veces consecutivas.
Con la construcción{n,m} expresamos que el carácter precedente debe aparecer en la cadena un mínimo de n veces consecutivas, y un máximo de m veces. Si no se especifica m, el número máximo de apariciones no está limitado.
Los indicadores de repetición presentados en el apartado anterior se pueden escribir también utilizando esta notación:
“a?” es equivalente a “a{0,1}”
“a+” es equivalente a “a{1,}”
“a*” esequivalente a “a{0,}”
El valor de n y m no puede ser superior al parámetro de MySQL  RE_DUP_MAX (por defecto, 255)
“|” – Coincidencia de una u otra secuencia de caracteres
Con el carácter “|” (barra vertical, pipa) podemos escribir una expresión regular que se cumple si la cadena contiene cualquiera de entre dos (o más) secuencias de caracteres. Por ejemplo, para seleccionar los nombres que contienen“Juan”, “Pedro” o “Luis”, podemos utilizar la sentencia:
SELECT * FROM usuarios WHERE nombre REGEXP 'Juan|Pedro|Luis';
“()” – Secuencia de caracteres
Una secuencia de caracteres se puede encerrar entre paréntesis, para indicar que un carácter especial que le sigue afecta a toda la secuencia. Por ejemplo, para escribir una expresión regular que se cumple si en la cadena aparece la secuencia...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Expresiones Regulares Mysql
  • Expresiones regulares
  • Expresiones regulares
  • expresiones regulares
  • Expresiones regulares
  • Expresiones Regulares
  • Expresiones regulares
  • expresiones regulares

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS