En MySQL, REGEXP_LIKE()
se utiliza para determinar si una cadena coincide o no con una expresión regular.
La función devuelve 1
si la cadena coincide con la expresión regular provista, y 0
si no es así.
Sintaxis
La sintaxis es así:
REGEXP_LIKE(expr, pat[, match_type])
Donde expr
es la cadena de entrada y pat
es la expresión regular para la que está probando la cadena.
El match_type
opcional El argumento le permite refinar la expresión regular. Por ejemplo, puede usar match_type
para especificar la coincidencia entre mayúsculas y minúsculas o no.
Ejemplo 1:uso básico
He aquí un ejemplo básico:
SELECT REGEXP_LIKE('Cat', '.*') Result;
Resultado:
+--------+ | Result | +--------+ | 1 | +--------+
En este caso, nuestra expresión regular especifica cualquier carácter en cualquier secuencia, por lo que, por supuesto, obtenemos una coincidencia. La función devuelve 1
para indicar una coincidencia.
Ejemplo 2:Sin coincidencia
Aquí hay un ejemplo donde la cadena de entrada no coincide con la expresión regular:
SELECT REGEXP_LIKE('Cat', 'b+') Result;
Resultado:
+--------+ | Result | +--------+ | 0 | +--------+
En este caso, nuestra expresión regular especifica que debe haber uno o más b
caracteres en cualquier secuencia. Nuestra cadena de entrada no contiene este carácter, por lo que 0
es devuelto.
Ejemplo 3:hacer coincidir el comienzo de una cadena
Aquí hay un ejemplo donde la expresión regular especifica que la cadena debe comenzar con ciertos caracteres:
SELECT REGEXP_LIKE('Cat', '^Ca') Result;
Resultado:
+--------+ | Result | +--------+ | 1 | +--------+
Y esto es lo que sucede si no hay ninguna coincidencia:
SELECT REGEXP_LIKE('Cat', '^Da') Result;
Resultado:
+--------+ | Result | +--------+ | 0 | +--------+
Ejemplo 4:una consulta de base de datos
Esta función se puede utilizar en WHERE
cláusula de consultas de base de datos para devolver solo aquellas filas que contienen el patrón:
SELECT AlbumId, AlbumName FROM Albums WHERE REGEXP_LIKE(AlbumName, '^Power');
Resultado:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
Aquí está la tabla completa:
SELECT AlbumId, AlbumName FROM Albums;
Resultado:
+---------+--------------------------+ | AlbumId | AlbumName | +---------+--------------------------+ | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | +---------+--------------------------+
Ejemplo 5:el match_type
Argumento
Puede proporcionar un argumento adicional para determinar el tipo de coincidencia. Esto le permite especificar cosas como si la coincidencia distingue entre mayúsculas y minúsculas o no, si debe incluir o no terminadores de línea, etc.
Este es un ejemplo de cómo especificar una coincidencia que distingue entre mayúsculas y minúsculas y una coincidencia que no distingue entre mayúsculas y minúsculas:
SELECT REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive', REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive';
Resultado:
+----------------+------------------+ | Case-Sensitive | Case-Insensitive | +----------------+------------------+ | 0 | 1 | +----------------+------------------+
El match_type
argumento puede contener los siguientes caracteres:
c
- Coincidencia sensible a mayúsculas y minúsculas.
i
- Coincidencia insensible a mayúsculas y minúsculas.
m
- Modo de varias líneas. Reconocer los terminadores de línea dentro de la cadena. El comportamiento predeterminado es hacer coincidir los terminadores de línea solo al principio y al final de la expresión de cadena.
n
- El
.
el carácter coincide con los terminadores de línea. El valor predeterminado es para.
coincidencia para detenerse al final de una línea. u
- Finales de línea exclusivos de Unix. Solo el carácter de nueva línea se reconoce como una línea que termina con
.
,^
y$
operadores de coincidencia.
Más ejemplos
Puede ver más ejemplos de expresiones regulares básicas en MySQL REGEXP Examples. REGEXP
es un sinónimo de REGEXP_LIKE()
, por lo que puede usar los ejemplos indistintamente.
Consulte también Sintaxis de expresiones regulares en la documentación de MySQL.