1 usuario conectado

Normalizar texto 2. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada normalizar_texto que tome una cadena de texto como entrada y devuelva una nueva cadena normalizada. La normalización debe incluir:



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Normalizar texto 2

📋 Copiar código

import re

def normalizar_texto(texto):
  """
  Normaliza una cadena de texto eliminando espacios en blanco extra y saltos de línea redundantes.

  Args:
    texto: La cadena de texto a normalizar.

  Returns:
    Una nueva cadena de texto normalizada.
  """
  # Eliminar espacios al principio y al final
  texto_normalizado = texto.strip()

  # Reemplazar múltiples espacios con un solo espacio
  texto_normalizado = re.sub(r'\s+', ' ', texto_normalizado)

  # Eliminar espacios alrededor de los saltos de línea y reemplazar múltiples saltos de línea con uno
  texto_normalizado = re.sub(r'\s*\n\s*', '\n', texto_normalizado)
  texto_normalizado = re.sub(r'\n+', '\n', texto_normalizado)

  return texto_normalizado

# Ejemplos de uso
texto1 = "  Este   texto   tiene    espacios extra.  "
resultado1 = normalizar_texto(texto1)
print(f"'{texto1}' normalizado:\n'{resultado1}'")

texto2 = """
Esta línea tiene
varios


saltos de línea.
"""
resultado2 = normalizar_texto(texto2)
print(f"\n'{texto2}' normalizado:\n'{resultado2}'")

texto3 = " Línea con espacio al inicio.\nLínea con espacio al final. "
resultado3 = normalizar_texto(texto3)
print(f"\n'{texto3}' normalizado:\n'{resultado3}'")

texto4 = "Palabra\tcon\ttabulaciones."
resultado4 = normalizar_texto(texto4)
print(f"\n'{texto4}' normalizado:\n'{resultado4}'")

texto5 = ""
resultado5 = normalizar_texto(texto5)
print(f"\n'' normalizado:\n'{resultado5}'")


 

Explicación del Código:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. def normalizar_texto(texto)::

    • Define una función llamada normalizar_texto que toma una cadena de texto (texto) como entrada.
  3. texto_normalizado = texto.strip():

    • Utiliza el método strip() para eliminar los espacios en blanco (incluyendo tabulaciones y saltos de línea) al principio y al final de la cadena.
  4. texto_normalizado = re.sub(r'\s+', ' ', texto_normalizado):

    • Utiliza re.sub() con la expresión regular r'\s+' (que coincide con uno o más caracteres de espacio en blanco) para reemplazar todas las secuencias de múltiples espacios con un solo espacio.
  5. texto_normalizado = re.sub(r'\s*\n\s*', '\n', texto_normalizado):

    • Utiliza re.sub() para eliminar cualquier espacio en blanco (cero o más) que pueda haber antes y después de un salto de línea (\n).
  6. texto_normalizado = re.sub(r'\n+', '\n', texto_normalizado):

    • Utiliza re.sub() para reemplazar una o más ocurrencias consecutivas de saltos de línea con un solo salto de línea.
  7. return texto_normalizado:

    • Devuelve la cadena de texto normalizada.

Ejemplos de Uso:

Los ejemplos muestran cómo la función normaliza diferentes cadenas de texto eliminando espacios extra, manejando múltiples saltos de línea y eliminando espacios alrededor de ellos. Las tabulaciones también se consideran espacios en blanco y se normalizan.