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:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares.
-
def normalizar_texto(texto):
:
- Define una función llamada
normalizar_texto
que toma una cadena de texto (texto
)
como entrada.
-
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.
-
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.
-
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
).
-
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.
-
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.