1 usuario conectado

Reemplazar palabra ignorando caso. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada reemplazar_palabra_ignorando_caso que tome una cadena de texto, la palabra a buscar y la palabra de reemplazo como entrada. La función debe devolver una nueva cadena donde todas las instancias de la palabra a buscar (sin importar si están en mayúsculas, minúsculas o una combinación) han sido reemplazadas por la palabra de reemplazo.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares.

  2. 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.