Expresiones regulares
¿Qué son las expresiones regulares?
Las expresiones regulares son una forma de especificar patrones de texto. Se pueden utilizar para encontrar, reemplazar o dividir texto.
El módulo re
En Python, las expresiones regulares se proporcionan en el módulo re
. Este módulo contiene una serie de métodos que se pueden utilizar para trabajar con expresiones regulares.
Métodos en el módulo re
El módulo re
proporciona los siguientes métodos principales para trabajar con expresiones regulares:
- match(): Encuentra la primera coincidencia de una expresión regular en una cadena.
- search(): Encuentra todas las coincidencias de una expresión regular en una cadena.
- findall(): Devuelve una lista de todas las coincidencias de una expresión regular en una cadena.
- sub(): Reemplaza todas las coincidencias de una expresión regular en una cadena con otra cadena.
- split(): Divide una cadena en una lista de subcadenas según las coincidencias de una expresión regular.
Ejemplos
match()
El método match()
devuelve un objeto MatchObject
si encuentra una coincidencia de la expresión regular en la cadena. El objeto MatchObject
tiene una serie de propiedades que se pueden utilizar para obtener información sobre la coincidencia.
Python
import re
texto = "Hola mundo!"
patron = r"Hola"
resultado = re.match(patron, texto)
if resultado:
print(resultado.group())
Este código imprimirá el siguiente mensaje:
Hola
search()
El método search()
devuelve un objeto MatchObject
si encuentra una coincidencia de la expresión regular en la cadena. Si no encuentra ninguna coincidencia, devuelve None
.
Python
import re
texto = "Hola mundo!"
patron = r"mundo"
resultado = re.search(patron, texto)
if resultado:
print(resultado.group())
Este código imprimirá el siguiente mensaje:
mundo
findall()
El método findall()
devuelve una lista de todas las coincidencias de una expresión regular en una cadena.
Python
import re
texto = "Hola mundo! Hola Python!"
patron = r"Hola"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['Hola', 'Hola']
sub()
El método sub()
reemplaza todas las coincidencias de una expresión regular en una cadena con otra cadena.
Python
import re
texto = "Hola mundo! Hola Python!"
patron = r"Hola"
reemplazo = "Ciao"
resultado = re.sub(patron, reemplazo, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
Ciao mundo! Ciao Python!
split()
El método split()
divide una cadena en una lista de subcadenas según las coincidencias de una expresión regular.
Python
import re
texto = "Hola mundo! Hola Python!"
patron = r" "
resultado = re.split(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['Hola', 'mundo!', 'Hola', 'Python!']
Ejemplos de patrones RegEx
Corchete
El corchete se utiliza para especificar un conjunto de caracteres. Por ejemplo, el patrón [a-z]
coincide con cualquier letra minúscula.
Python
import re
texto = "Hola mundo! Hola Python!"
patron = r"[a-z]"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['o', 'l', 'a', 'm', 'u', 'n', 'd', 'o', 'H', 'o', 'l', 'a', 'P', 'y', 't', 'h', 'o', 'n']
Carácter de escape ()
El carácter de escape (\
) se utiliza para escapar de un carácter especial. Por ejemplo, el patrón \d
coincide con cualquier dígito.
Python
import re
texto = "Hola mundo! 12345"
patron = r"\d"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['1', '2', '3', '4', '5']
El carácter de escape también se puede utilizar para especificar caracteres que no están disponibles en el teclado. Por ejemplo, el patrón \\n
coincide con un carácter de nueva línea.
Python
import re
texto = "Hola\nmundo!"
patron = r"\\n"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['\\n']
Aquí hay algunos ejemplos adicionales de patrones RegEx:
- Una o más veces(+): El cuantificador
+
indica que una expresión debe aparecer una o más veces. Por ejemplo, el patróna+
coincide con una o más letrasa
.
Python
import re
texto = "Holaaa"
patron = r"a+"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['aa', 'aa']
- Período(.): El período coincide con cualquier carácter. Por ejemplo, el patrón
.*
coincide con cualquier cadena de caracteres.
Python
import re
texto = "Hola mundo!"
patron = r".*"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['Hola mundo!']
- Cero o más veces (*): El cuantificador
*
indica que una expresión puede aparecer cero o más veces. Por ejemplo, el patróna*
coincide con cero o más letrasa
.
Python
import re
texto = "Hola"
patron = r"a*"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['', 'a', 'aa', 'aaa']
- Cero o una vez (?): El cuantificador
?
indica que una expresión puede aparecer cero o una vez. Por ejemplo, el patróna?
coincide con una o ninguna letraa
.
Python
import re
texto = "Hola"
patron = r"a?"
resultado = re.findall(patron, texto)
print(resultado)
Este código imprimirá el siguiente mensaje:
['', 'a']