Expresiones regulares en Python: guía completa para empezar

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a las expresiones regulares en Python

Trabajar con texto es una de las tareas más comunes en programación. Las expresiones regulares se convierten en una herramienta indispensable para resolver diversos problemas, como el análisis de páginas HTML, la validación de formatos de datos o el procesamiento de logs.

En Python, el módulo integrado re permite trabajar con expresiones regulares. En esta guía, exploraremos a fondo su uso, incluyendo métodos populares como re.search() y re.sub(), y mostraremos su aplicación práctica con ejemplos reales.

Fundamentos de las expresiones regulares

¿Qué son y para qué sirven?

Las expresiones regulares (Regular Expressions o RegEx) son un lenguaje especial para describir patrones de búsqueda en texto. Con ellas, puedes buscar, validar y reemplazar fragmentos de texto según reglas específicas.

Tareas típicas resueltas con expresiones regulares

Las expresiones regulares en Python resuelven una amplia variedad de problemas:

  • Validación de correos electrónicos y números de teléfono
  • Búsqueda de todos los valores numéricos en un texto
  • Reemplazo de caracteres no deseados y limpieza de datos
  • Extracción de palabras o frases específicas de textos largos
  • Análisis de datos estructurados
  • Procesamiento de logs y archivos del sistema

Preparación para trabajar

Importación del módulo re

Antes de empezar, debes importar el módulo especializado:

import re

Símbolos y construcciones básicas

Para usar expresiones regulares de forma eficaz, es clave conocer los símbolos principales y su función:

Símbolo Función
. Cualquier carácter, excepto nueva línea
\d Cualquier dígito (0-9)
\D Cualquier carácter no numérico
\w Letra, dígito o guion bajo
\W Cualquier carácter que no sea \w
\s Espacio, tabulación o salto de línea
\S Cualquier carácter que no sea espacio
^ Inicio de la cadena
$ Final de la cadena
[] Carácter de un conjunto específico
* Cero o más repeticiones
+ Una o más repeticiones
{n,m} De n a m repeticiones

Métodos principales para trabajar con expresiones regulares

Método re.search() para buscar la primera coincidencia

El método re.search() busca la primera aparición de un patrón en una cadena. Devuelve un objeto Match si encuentra algo, o None si no hay coincidencia.

import re

texto = "Email: ejemplo@correo.com"
coincidencia = re.search(r'\w+@\w+\.\w+', texto)

if coincidencia:
    print("Correo encontrado:", coincidencia.group())

Resultado:

Correo encontrado: ejemplo@correo.com

Explicación del patrón de búsqueda

Analicemos el patrón usado, parte por parte:

  • \w+ — una o más letras, dígitos o guiones bajos
  • @ — el símbolo arroba (elemento obligatorio en un correo)
  • \. — el punto (se escapa con barra invertida)
  • \w+ — el dominio de nivel superior

Método re.findall() para buscar todas las coincidencias

Cuando necesitas encontrar todas las apariciones de un patrón en un texto, usa findall(). Este método devuelve una lista con todas las coincidencias encontradas.

texto = "Precios: 100 pesos, 250 pesos, 350 pesos"
numeros = re.findall(r'\d+', texto)
print(numeros)  # ['100', '250', '350']

Método re.sub() para reemplazar según un patrón

El método re.sub() reemplaza todas las apariciones de un patrón con un texto especificado.

Blogs

Book Recommendations