Solución al Ejercicio: Reemplazar palabra ignorando caso
📋 Copiar código
import re
def reemplazar_palabra_ignorando_caso(texto, palabra_buscar, palabra_reemplazar):
"""
Reemplaza todas las ocurrencias de una palabra por otra, ignorando la capitalización.
Args:
texto: La cadena de texto de entrada.
palabra_buscar: La palabra que se va a reemplazar (en minúsculas).
palabra_reemplazar: La palabra con la que se va a reemplazar.
Returns:
Una nueva cadena con las palabras reemplazadas.
"""
patron = r"\b" + re.escape(palabra_buscar) + r"\b"
texto_modificado = re.sub(patron, palabra_reemplazar, texto, flags=re.IGNORECASE)
return texto_modificado
# Ejemplos de uso
texto1 = "El perro ladra. El PERRO es grande. Un perro."
buscar1 = "perro"
reemplazar1 = "can"
resultado1 = reemplazar_palabra_ignorando_caso(texto1, buscar1, reemplazar1)
print(f"'{texto1}' con '{buscar1}' reemplazado por '{reemplazar1}': '{resultado1}'")
texto2 = "La CASA es bonita. Una casa grande."
buscar2 = "casa"
reemplazar2 = "vivienda"
resultado2 = reemplazar_palabra_ignorando_caso(texto2, buscar2, reemplazar2)
print(f"'{texto2}' con '{buscar2}' reemplazado por '{reemplazar2}': '{resultado2}'")
texto3 = "Un EJEMPLO sencillo."
buscar3 = "ejemplo"
reemplazar3 = "caso"
resultado3 = reemplazar_palabra_ignorando_caso(texto3, buscar3, reemplazar3)
print(f"'{texto3}' con '{buscar3}' reemplazado por '{reemplazar3}': '{resultado3}'")
texto4 = "No hay la PALABRA aquí."
buscar4 = "palabra"
reemplazar4 = "término"
resultado4 = reemplazar_palabra_ignorando_caso(texto4, buscar4, reemplazar4)
print(f"'{texto4}' con '{buscar4}' reemplazado por '{reemplazar4}': '{resultado4}'")
texto5 = ""
buscar5 = "algo"
reemplazar5 = "nada"
resultado5 = reemplazar_palabra_ignorando_caso(texto5, buscar5, reemplazar5)
print(f"'{texto5}' con '{buscar5}' reemplazado por '{reemplazar5}': '{resultado5}'")
texto6 = "La flor FLOR florece."
buscar6 = "flor"
reemplazar6 = "rosa"
resultado6 = reemplazar_palabra_ignorando_caso(texto6, buscar6, reemplazar6)
print(f"'{texto6}' con '{buscar6}' reemplazado por '{reemplazar6}': '{resultado6}'")
Explicación del Código:
-
Importa el módulo re
:
Se utiliza para trabajar con expresiones regulares.
-
Función
reemplazar_palabra_ignorando_caso(texto, palabra_buscar, palabra_reemplazar)
:
patron = r"\b" +
re.escape(palabra_buscar) + r"\b"
: Crea un patrón de búsqueda de
expresión regular:
\b
: Asegura que se
coincida con palabras completas (para no reemplazar "perrito" cuando
se busca "perro").
re.escape(palabra_buscar)
:
Escapa cualquier carácter especial que pueda haber en la
palabra_buscar
para que se interprete literalmente en la
expresión regular.
texto_modificado = re.sub(patron,
palabra_reemplazar, texto, flags=re.IGNORECASE)
: Realiza la
sustitución de todas las ocurrencias del patron
(que
representa la palabra_buscar
ignorando mayúsculas y
minúsculas gracias a flags=re.IGNORECASE
) por la
palabra_reemplazar
en el texto
.
- Devuelve la cadena
texto_modificado
con las palabras reemplazadas.
Ejemplos de Uso:
Los ejemplos muestran cómo la función reemplaza
la palabra buscada en diferentes contextos, sin importar si está en mayúsculas,
minúsculas o una combinación. Se asegura de reemplazar solo palabras completas.