Python Programming

Domina los comodines Regex con re.sub() de Python

Spread the love

Las expresiones regulares (regex o regexp) son herramientas poderosas para la coincidencia de patrones dentro de cadenas. El módulo re de Python ofrece una funcionalidad robusta para operaciones regex, donde los comodines juegan un papel crucial. Este artículo explora cómo usar eficazmente los comodines con la función re.sub() para varias tareas de manipulación de cadenas.

Tabla de contenido

Sustituciones básicas de Regex con comodines

La función re.sub() es fundamental para las sustituciones regex. Su sintaxis es re.sub(patrón, reemplazo, cadena, count=0, flags=0). El patrón es una expresión regular, reemplazo es la cadena de sustitución, cadena es la entrada, count limita las sustituciones y flags modifica el comportamiento de coincidencia. Los comodines mejoran dramáticamente la flexibilidad del patrón.

Reemplacemos todas las vocales en una cadena con «X»:


import re

texto = "Hola, Mundo!"
texto_reemplazado = re.sub(r"[aeiou]", "X", texto, flags=re.IGNORECASE)
print(f"Original: {texto}")
print(f"Reemplazado: {texto_reemplazado}")

[aeiou] es un conjunto de caracteres comodín que coincide con cualquier vocal (sin distinción de mayúsculas y minúsculas debido a re.IGNORECASE).

Uso avanzado de comodines y cuantificadores

re.sub() admite comodines complejos. Reemplacemos secuencias de uno o más dígitos con «NÚMERO»:


import re

texto = "Mi número de teléfono es 123-456-7890 y mi código postal es 90210."
texto_reemplazado = re.sub(r"d+", "NÚMERO", texto)
print(f"Original: {texto}")
print(f"Reemplazado: {texto_reemplazado}")

d+ coincide con uno o más dígitos (d coincide con un dígito, + significa una o más repeticiones).

Aquí hay una tabla que resume los comodines clave:

Comodín Descripción
. Coincide con cualquier carácter excepto el carácter de nueva línea.
* Coincide con cero o más ocurrencias del elemento anterior.
+ Coincide con una o más ocurrencias del elemento anterior.
? Coincide con cero o una ocurrencia del elemento anterior.
[] Define un conjunto de caracteres (por ejemplo, [abc]).
[^] Define un conjunto de caracteres negado (por ejemplo, [^abc]).
() Crea un grupo de captura.
Escapa caracteres especiales (por ejemplo, . coincide con un punto literal).

Combinación de comodines para patrones complejos

La combinación de comodines crea patrones poderosos. Reemplacemos las palabras que comienzan con «a» seguidas de cualquier carácter:


import re

texto = "Una manzana al día mantiene al médico alejado."
texto_reemplazado = re.sub(r"aw*", "PALABRA", texto, flags=re.IGNORECASE)
print(f"Original: {texto}")
print(f"Reemplazado: {texto_reemplazado}")

aw* coincide con «a» seguido de cero o más caracteres de palabra (w).

Ejemplos del mundo real: Extracción de correo electrónico y número de teléfono

re.sub() sobresale en el manejo de patrones complejos. Reemplacemos las direcciones de correo electrónico con «CORREO ELECTRÓNICO»:


import re

texto = "Contáctanos en [email protected] o [email protected]."
texto_reemplazado = re.sub(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}", "CORREO ELECTRÓNICO", texto)
print(f"Original: {texto}")
print(f"Reemplazado: {texto_reemplazado}")

Esta expresión regular coincide con un formato de correo electrónico común.

Conclusión

La función re.sub(), combinada con comodines regex, ofrece un método flexible y eficiente para la manipulación de cadenas en Python. Dominar estas técnicas es valioso para las tareas de procesamiento de texto y limpieza de datos. La construcción cuidadosa de expresiones regulares es crucial para evitar reemplazos no deseados. La experimentación y la comprensión de los matices de los comodines son clave para una manipulación eficaz de cadenas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *