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:
^abc
coincide 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.c
coincide 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*c
coincide con “ac”, “abc”, “abbc”, etc.
+
- Una o más repeticiones:- Coincide con una o más repeticiones del elemento anterior.
- Ejemplo:
ab+c
coincide con “abc”, “abbc”, pero no con “ac”.
?
- Cero o una repetición:- Coincide con cero o una repetición del elemento anterior.
- Ejemplo:
ab?c
coincide 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\.b
coincide con “a.b”.
|
- Alternancia:- Coincide con uno de los elementos separados por
|
. - Ejemplo:
a|b
coincide 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.