Una expresión regular es una forma muy potente de especificar un patrón para una búsqueda compleja.
MySQL usa la impementación de Henry Spencer para expresiones regulares, que ha sido ajustado para ceñirse a POSIX 1003.2. MySQL usa una versión extendida para soportar operaciones de coincidencia de patrones realizadas con el operador REGEXP en sentencias SQL.
Este apéndice es un resumen, con ejemplos, de las características especiales y de las construcciones que pueden ser usadas en MySQL para operaciones REGEXP. No contiene todos los detalles que pueden ser encontrados en el manual de regex(7) de Henry Spencer. Dicho manual está incluido en las distribuciones fuente de MySQL, en el fichero 'regex.7' bajo el directorio 'regex'.
Una expresión regular describe un conjunto de cadenas. La expresión regular más sencilla es aquella que no contiene caracteres especiales. Por ejemplo, la expresión regular "hola" coincide con "hola" y con nada más.
Las expresiones regulares no triviales usan ciertas construcciones especiales de modo que pueden coincidir con más de una cadena. Por ejemplo, la expresión regular "Hola|mundo" coincide tanto con la cadena "Hola" como con la cadena "mundo".
Como ejemplo algo más complejo, la expresión regular "B[an]*s" coincide con cualquiera de las cadenas siguientes "Bananas", "Baaaaas", "Bs", y cualquier otra cadena que empiece con 'B', termine con 's', y contenga cualquier número de caracteres 'a' o 'n' entre la 'B' y la 's'.
Una expresión regular para el operador REGEXP puede usar cualquiera de los siguientes caracteres especiales u contrucciones:
^
Coincidencia del principio de una cadena.
mysql> SELECT 'fonfo' REGEXP '^fo$'; -> 0 mysql> SELECT 'fofo' REGEXP '^fo'; -> 1
$
Coincidencia del final de una cadena.
mysql> SELECT 'fono' REGEXP '^fono$'; -> 1 mysql> SELECT 'fono' REGEXP '^fo$'; -> 0
.
Coincidencia de culaquier carácter (incluyendo los de avance o el retorno de línea).
mysql> SELECT 'fofo' REGEXP '^f.*$'; -> 1 mysql> SELECT 'fornfo' REGEXP '^f.*$'; -> 1
a*
Coincidencia de cualquier secuencia de cero o más caracteres.
mysql> SELECT 'Ban' REGEXP '^Ba*n'; -> 1 mysql> SELECT 'Baaan' REGEXP '^Ba*n'; -> 1 mysql> SELECT 'Bn' REGEXP '^Ba*n'; -> 1
a+
Coincidencia de cualquier secuencia de uno o más caracteres.
mysql> SELECT 'Ban' REGEXP '^Ba+n'; -> 1 mysql> SELECT 'Bn' REGEXP '^Ba+n'; -> 0
Usuarios que han visto este tema también han visto...
- Compilardo MySQL para Linux
- Mini referencia de MySQL
- Trabajar con tablas temporales en MySQL
- Crea sencillas gráficas con MySql
- Los índices en MySQL
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.