Las expresiones regulares, comúnmente conocidas como regex o regexp, son patrones que se utilizan para buscar y manipular texto basado en reglas específicas. En Python, puedes utilizar el módulo `re` para trabajar con expresiones regulares. Aquí te mostraré cómo usar expresiones regulares en Python.
Importar el Módulo `re`
Primero, debes importar el módulo `re`:
import re
Búsqueda de Patrones
El método `search()` se utiliza para buscar un patrón dentro de una cadena de texto. Devuelve un objeto de coincidencia si encuentra una coincidencia o `None` si no encuentra ninguna.
texto = "Hola, mi número de teléfono es 555-123-4567."
patron = r'\d{3}-\d{3}-\d{4}' # Expresión regular para un número de teléfono
resultado = re.search(patron, texto)
if resultado:
print("Número de teléfono encontrado:", resultado.group())
else:
print("Número de teléfono no encontrado.")
Coincidencias Múltiples
Si deseas encontrar todas las coincidencias en una cadena, puedes usar el método `findall()`.
texto = "Los números de teléfono son 555-123-4567 y 555-987-6543."
patron = r'\d{3}-\d{3}-\d{4}' # Expresión regular para números de teléfono
resultados = re.findall(patron, texto)
for resultado in resultados:
print("Número de teléfono encontrado:", resultado)
Sustitución de Texto
Puedes utilizar el método `sub()` para reemplazar todas las ocurrencias de un patrón por otro texto.
texto = "Mi dirección de correo es correo@example.com."
patron = r'\S+@\S+' # Expresión regular para direcciones de correo
nuevo_texto = re.sub(patron, "correo@nueva-direccion.com", texto)
print(nuevo_texto)
Modificadores
Los modificadores en expresiones regulares te permiten realizar búsquedas que no distinguen entre mayúsculas y minúsculas, búsquedas multilínea y más. Puedes especificar estos modificadores utilizando argumentos opcionales en las funciones `search()`, `findall()`, etc.
texto = "Texto en mayúsculas\nY texto en minúsculas"
patron = r'texto'
# Usar el modificador 're.I' para hacer una búsqueda sin distinción entre mayúsculas y minúsculas
resultado = re.search(patron, texto, re.I)
if resultado:
print("Texto encontrado:", resultado.group())
Grupos en Expresiones Regulares
Los grupos te permiten capturar partes específicas de una coincidencia. Puedes definir grupos usando paréntesis `()`.
texto = "Mi número de teléfono principal es 555-123-4567 y mi número secundario es 555-987-6543."
patron = r'(\d{3}-\d{3}-\d{4})' # Grupos para números de teléfono
resultados = re.findall(patron, texto)
for resultado in resultados:
print("Número de teléfono encontrado:", resultado)
Conclusiones
Las expresiones regulares son una herramienta poderosa para buscar y manipular patrones de texto en Python. Puedes utilizar el módulo `re` para realizar búsquedas, reemplazos y capturas de texto en base a patrones específicos. Las expresiones regulares son especialmente útiles para tareas como validación de entradas de usuario, análisis de archivos de texto y extracción de información de documentos.