La sintaxis básica de las expresiones regulares incluye caracteres literales, metacaracteres, grupos y cuantificadores. Aquí hay una breve descripción de cada uno:
- Caracteres Literales:
- Los caracteres literales coinciden exactamente con ellos mismos.
- Ejemplo: El patrón
"python"coincide con la cadena “python” en un texto.
- Metacaracteres:
- Son caracteres especiales con significados especiales en expresiones regulares.
- Algunos metacaracteres comunes:
^,$,., ``,+,?,\,|,[ ],{ },( ). - Ejemplo: El patrón
"\d"coincide con cualquier dígito.
- Grupos:
- Los paréntesis
( )se utilizan para agrupar expresiones y aplicar operadores a ellas. - Los grupos pueden ser capturadores o no capturadores.
- Ejemplo de grupo capturador:
"(abc)+"coincide con “abc”, “abcabc”, etc. - Ejemplo de grupo no capturador:
"(?:abc)+"tiene el mismo efecto, pero no captura el grupo.
- Los paréntesis
- Cuantificadores:
- Se utilizan para especificar cuántas veces debe aparecer un elemento.
- Algunos cuantificadores comunes: `` (cero o más),
+(uno o más),?(cero o uno),{n}(exactamente n),{n,}(n o más),{n,m}(entre n y m). - Ejemplo: El patrón
"\d{2,4}"coincide con dos, tres o cuatro dígitos.
Ejemplos:
Caracteres Literales:
import re texto = "Python es un lenguaje de programación." patron = r"Python" coincidencias = re.findall(patron, texto) print(coincidencias) # Imprimirá ['Python']
Metacaracteres:
import re texto = "123-456-7890" patron = r"^\d{3}-\d{3}-\d{4}$" coincidencia = re.match(patron, texto) if coincidencia: print("Número de teléfono válido.") else: print("Número de teléfono no válido.")Grupos:
import re texto = "abcabcabc" patron_con_grupo = r"(abc)+" coincidencias = re.findall(patron_con_grupo, texto) print(coincidencias) # Imprimirá ['abc', 'abc', 'abc'] patron_sin_grupo = r"abc+" coincidencia_sin_grupo = re.findall(patron_sin_grupo, texto) print(coincidencia_sin_grupo) # Imprimirá ['abcabcabc']Cuantificadores:
import re texto = "12345" patron_con_cuantificador = r"\d{2,4}" coincidencia_con_cuantificador = re.findall(patron_con_cuantificador, texto) print(coincidencia_con_cuantificador) # Imprimirá ['1234'] patron_sin_cuantificador = r"\d\d\d\d" coincidencia_sin_cuantificador = re.findall(patron_sin_cuantificador, texto) print(coincidencia_sin_cuantificador) # Imprimirá ['1234']
Estos son solo ejemplos básicos. Las expresiones regulares pueden volverse más complejas a medida que se combinan diferentes elementos para crear patrones más específicos y flexibles.
Aquí tienes una explicación de algunos de los metacaracteres comunes en expresiones regulares junto con ejemplos de su uso:
^- Ancla de inicio:- Coincide con el inicio de una cadena.
- Ejemplo:
^abccoincide con “abc” al principio de la cadena.
$- Ancla de fin:- Coincide con el final de una cadena.
- Ejemplo:
abc$coincide con “abc” al final de la cadena.
.- Corresponde a cualquier carácter excepto nueva línea:- Coincide con cualquier carácter excepto una nueva línea (
\n). - Ejemplo:
a.ccoincide con “abc”, “adc”, etc.
- Coincide con cualquier carácter excepto una nueva línea (
*- Cero o más repeticiones:- Coincide con cero o más repeticiones del elemento anterior.
- Ejemplo:
ab*ccoincide con “ac”, “abc”, “abbc”, etc.
+- Una o más repeticiones:- Coincide con una o más repeticiones del elemento anterior.
- Ejemplo:
ab+ccoincide con “abc”, “abbc”, pero no con “ac”.
?- Cero o una repetición:- Coincide con cero o una repetición del elemento anterior.
- Ejemplo:
ab?ccoincide con “ac” y “abc”, pero no con “abbc”.
\- Carácter de escape:- Utilizado para escapar un metacaracter y tratarlo como un carácter literal.
- Ejemplo:
a\.bcoincide con “a.b”.
|- Alternancia:- Coincide con uno de los elementos separados por
|. - Ejemplo:
a|bcoincide con “a” o “b”.
- Coincide con uno de los elementos separados por
[ ]- Conjunto de caracteres:- Coincide con cualquier carácter dentro del conjunto.
- Ejemplo:
[aeiou]coincide con cualquier vocal.
{ }- Cuantificador específico:- Especifica un número exacto o un rango de repeticiones.
- Ejemplos:
a{3}coincide con “aaa”.a{2,4}coincide con “aa”, “aaa” o “aaaa”.
Estos son solo algunos de los metacaracteres más comunes en expresiones regulares. La combinación de estos elementos permite construir patrones flexibles y poderosos para buscar y manipular texto de manera efectiva.