Solución al Ejercicio: Reemplazar múltiples palabras
📋 Copiar código
import re
def contiene_solo_letras_es(texto):
"""
Valida si una cadena de texto contiene solo letras del alfabeto español y espacios.
import re
def reemplazar_multiples_palabras(texto, reemplazos):
"""
Reemplaza múltiples palabras en un texto (ignorando mayúsculas/minúsculas)
utilizando un diccionario de reemplazo.
Args:
texto: La cadena de texto de entrada.
reemplazos: Un diccionario donde las claves son las palabras a buscar
(en minúsculas) y los valores son las palabras de reemplazo.
Returns:
Una nueva cadena con las palabras reemplazadas.
"""
texto_modificado = texto
for buscar, reemplazar in reemplazos.items():
patron = r"(?i)\b" + re.escape(buscar) + r"\b"
texto_modificado = re.sub(patron, reemplazar, texto_modificado)
return texto_modificado
# Ejemplos de uso
texto1 = "El perro ladra al gato. EL GATO huye."
reemplazos1 = {"perro": "can", "gato": "felino"}
resultado1 = reemplazar_multiples_palabras(texto1, reemplazos1)
print(f"'{texto1}' con reemplazos: '{resultado1}'")
texto2 = "La casa es grande, la CASA blanca."
reemplazos2 = {"casa": "vivienda", "blanca": "inmaculada"}
resultado2 = reemplazar_multiples_palabras(texto2, reemplazos2)
print(f"'{texto2}' con reemplazos: '{resultado2}'")
texto3 = "Un ejemplo de ejemplo."
reemplazos3 = {"ejemplo": "muestra"}
resultado3 = reemplazar_multiples_palabras(texto3, reemplazos3)
print(f"'{texto3}' con reemplazos: '{resultado3}'")
texto4 = "No hay palabras para reemplazar aquí."
reemplazos4 = {"algo": "nada"}
resultado4 = reemplazar_multiples_palabras(texto4, reemplazos4)
print(f"'{texto4}' con reemplazos: '{resultado4}'")
texto5 = ""
reemplazos5 = {"palabra": "otra"}
resultado5 = reemplazar_multiples_palabras(texto5, reemplazos5)
print(f"'' con reemplazos: '{resultado5}'")
texto6 = "El sol brilla en el cielo AZUL."
reemplazos6 = {"sol": "astro rey", "azul": "celeste"}
resultado6 = reemplazar_multiples_palabras(texto6, reemplazos6)
print(f"'{texto6}' con reemplazos: '{resultado6}'")
Explicación del Código:
-
Importa el módulo re
:
Se utiliza para trabajar con expresiones regulares para realizar las
sustituciones.
-
Función
reemplazar_multiples_palabras(texto, reemplazos)
:
- Inicializa
texto_modificado
con el texto original.
- Itera a través del diccionario
reemplazos
, donde cada buscar
(clave) es la palabra
a reemplazar (en minúsculas para la búsqueda insensible) y cada
reemplazar
(valor) es la palabra de reemplazo.
- Para cada par
buscar
-reemplazar
:
patron = r"(?i)\b" +
re.escape(buscar) + r"\b"
: Crea un patrón de búsqueda de
expresión regular:
(?i)
: Una bandera
para que la búsqueda no distinga entre mayúsculas y minúsculas.
\b
: Un límite de
palabra para asegurar que solo se reemplacen las palabras
completas.
re.escape(buscar)
:
Escapa cualquier carácter especial que pueda haber en la palabra
a buscar.
texto_modificado =
re.sub(patron, reemplazar, texto_modificado)
: Realiza la
sustitución de todas las ocurrencias de la palabra a buscar por la
palabra de reemplazo en el texto_modificado
.
- Devuelve la cadena
texto_modificado
con todas las palabras reemplazadas.
Ejemplos de Uso:
Los ejemplos muestran cómo la función reemplaza
múltiples palabras en diferentes textos utilizando un diccionario de mapeo. La
búsqueda de las palabras clave no distingue entre mayúsculas y minúsculas, y se
asegura de reemplazar solo palabras completas gracias a los límites de palabra (\b
).