Solución al Ejercicio: Eliminar espacios extra
📋 Copiar código
import re
def eliminar_espacios_extra(texto):
"""
Elimina los espacios en blanco iniciales y finales, y reduce múltiples
espacios consecutivos a un solo espacio en una cadena de texto.
Args:
texto: La cadena de texto de entrada.
Returns:
Una nueva cadena con los espacios extra eliminados.
"""
# Eliminar espacios iniciales y finales
texto_sin_bordes = texto.strip()
# Reducir múltiples espacios internos a uno solo
texto_sin_multiples = re.sub(r'\s+', ' ', texto_sin_bordes)
return texto_sin_multiples
# Ejemplos de uso
texto1 = " Hola mundo "
limpio1 = eliminar_espacios_extra(texto1)
print(f"'{texto1}' con espacios extra eliminados es: '{limpio1}'")
texto2 = " Espacios al principio."
limpio2 = eliminar_espacios_extra(texto2)
print(f"'{texto2}' con espacios extra eliminados es: '{limpio2}'")
texto3 = "Espacios al final. "
limpio3 = eliminar_espacios_extra(texto3)
print(f"'{texto3}' con espacios extra eliminados es: '{limpio3}'")
texto4 = "Múltiples espacios intermedios."
limpio4 = eliminar_espacios_extra(texto4)
print(f"'{texto4}' con espacios extra eliminados es: '{limpio4}'")
texto5 = " Sin espacios extra. "
limpio5 = eliminar_espacios_extra(texto5)
print(f"'{texto5}' con espacios extra eliminados es: '{limpio5}'")
texto6 = ""
limpio6 = eliminar_espacios_extra(texto6)
print(f"'{texto6}' con espacios extra eliminados es: '{limpio6}'")
Explicación del Código:
-
Importación del módulo re
:
- Se importa el módulo
re
(regular expression) para utilizar expresiones regulares en la reducción
de múltiples espacios internos.
-
Definición de la función
eliminar_espacios_extra(texto)
:
- Se define una función llamada
eliminar_espacios_extra
que toma una cadena de texto texto
como argumento.
-
Eliminación de espacios iniciales y
finales:
texto_sin_bordes = texto.strip()
:
Se utiliza el método strip()
de las cadenas. strip()
devuelve una nueva cadena después de eliminar los espacios en blanco
(incluyendo espacios, tabulaciones y saltos de línea) que se encuentren
al principio y al final de la cadena original texto
.
-
Reducción de múltiples espacios
internos:
texto_sin_multiples = re.sub(r'\s+',
' ', texto_sin_bordes)
:
- Se utiliza la función
re.sub()
para buscar y reemplazar patrones en la cadena
texto_sin_bordes
.
- El patrón de expresión regular
r'\s+'
coincide con una o más (+
)
ocurrencias de cualquier carácter de espacio en blanco (\s
).
- Todas las coincidencias de este
patrón son reemplazadas por un solo espacio en blanco (
' '
).
Esto asegura que donde había múltiples espacios consecutivos, ahora
habrá solo uno.
-
Retorno de la cadena limpia:
return texto_sin_multiples
:
La función devuelve la cadena resultante texto_sin_multiples
,
que tiene los espacios iniciales y finales eliminados y los múltiples
espacios internos reducidos a un solo espacio.
-
Ejemplos de uso:
- Se proporcionan varios ejemplos de
cadenas de texto con diferentes combinaciones de espacios extra
(iniciales, finales y múltiples internos).
- Para cada ejemplo, se llama a la
función y se imprime la cadena original y la cadena resultante después
de la eliminación de los espacios extra. Se incluye un caso con una
cadena vacía para mostrar su manejo.