Cómo utilizar expresiones regulares (Regex) en Python
Domine las expresiones regulares de Python utilizando el módulo re integrado. Aprenda a comparar cadenas, buscar patrones, encontrar todas las apariciones y reemplazar texto.
Descripción general
Las expresiones regulares, comúnmente conocidas como expresiones regulares, son plantillas poderosas que se utilizan para hacer coincidir, buscar y manipular cadenas de texto basadas en patrones específicos. Regex se usa ampliamente para la verificación de correo electrónico, la validación de números de teléfono, el web scraping, el análisis de registros y las tareas de búsqueda y reemplazo de texto. Python proporciona capacidades completas de expresiones regulares a través del módulo incorporado `re`.
El módulo `re` ofrece varias funciones principales según su objetivo. La función `re.search(pattern, string)` escanea una cadena y devuelve un objeto coincidente para la primera aparición del patrón. La función `re.match(pattern, string)` es similar pero solo busca desde el principio de la cadena. Si desea recuperar todas las instancias de un patrón en un bloque de texto, `re.findall(pattern, string)` las devuelve como una lista de cadenas.
Los patrones de expresiones regulares utilizan metacaracteres especiales como `\d` para dígitos, `\w` para caracteres alfanuméricos, `+` para una o más apariciones y `*` para cero o más. Al escribir expresiones regulares en Python, es una práctica estándar utilizar cadenas literales sin formato (con el prefijo `r`, como `r"\d+"`) para evitar que Python trate las barras invertidas como secuencias de escape.
Código y salida de ejecución
Este script demuestra la validación de estructuras de formato, la extracción de tokens numéricos y el reemplazo de patrones coincidentes utilizando el módulo re.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Implementación paso a paso
- Importe el módulo re incorporado.
- Defina patrones de búsqueda de expresiones regulares utilizando cadenas sin formato, como r"\d+" para evitar problemas con la secuencia de escape.
- Utilice re.search() para encontrar la primera aparición o re.findall() para recopilar todas las subcadenas coincidentes.
- Utilice re.sub(patrón, reemplazo, cadena) para realizar reemplazos basados en patrones dentro del texto.
Preguntas frecuentes
¿Cuál es el beneficio de utilizar cadenas sin formato (r"...") para patrones de expresiones regulares?
Las cadenas sin formato tratan las barras invertidas como caracteres literales en lugar de caracteres de escape. Por ejemplo, r"\n" representa una barra invertida seguida de una "n", mientras que "\n" representa un carácter de nueva línea.
¿Cómo verifico si una coincidencia de expresiones regulares fue exitosa?
re.search() y re.match() devuelven un objeto coincidente si tiene éxito, o Ninguno si no se encuentra ninguna coincidencia. Debe verificar el resultado usando una declaración condicional (por ejemplo, si coincide:).
Temas relacionados
Aprenda a reemplazar caracteres o subcadenas en cadenas de Python. Domine el método replace(), cuente los límites y utilice la traducción para varios caracteres.
Cómo dividir una cadena en PythonAprenda cómo dividir una cadena en una lista en Python usando el método split(). Explore la división por espacios, comas, nuevas líneas y limite el recuento de divisiones.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Bucles de Python
Aprenda a utilizar bucles de Python para iterar sobre datos. Domine los bucles for, while, rompa, continúe y realice bucles con ejemplos interactivos.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.