Solución al Ejercicio: Convertir cadena a snake case
📋 Copiar código
import re
def a_snake_case(texto):
"""
Convierte una cadena de texto a formato snake_case.
Args:
texto: La cadena de texto de entrada.
Returns:
La cadena en formato snake_case.
"""
texto = re.sub(r'[^\w\s]', '', texto).strip().lower()
return re.sub(r'\s+', '_', texto)
# Ejemplos de uso
texto1 = "Hola Mundo Cruel"
resultado1 = a_snake_case(texto1)
print(f"'{texto1}' en snake_case: '{resultado1}'")
texto2 = "Este Es Un Texto Con Mayúsculas"
resultado2 = a_snake_case(texto2)
print(f"'{texto2}' en snake_case: '{resultado2}'")
texto3 = "Un título con ¡caracteres especiales!"
resultado3 = a_snake_case(texto3)
print(f"'{texto3}' en snake_case: '{resultado3}'")
texto4 = " Espacios al principio y al final "
resultado4 = a_snake_case(texto4)
print(f"'{texto4}' en snake_case: '{resultado4}'")
texto5 = "Múltiples espacios seguidos"
resultado5 = a_snake_case(texto5)
print(f"'{texto5}' en snake_case: '{resultado5}'")
texto6 = ""
resultado6 = a_snake_case(texto6)
print(f"'' en snake_case: '{resultado6}'")
texto7 = "UnaCadenaCamelCase"
Explicación del Código:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares.
-
def a_snake_case(texto):
:
- Define una función llamada
a_snake_case
que toma una cadena de texto (texto
)
como entrada.
-
texto = re.sub(r'[^\w\s]', '',
texto).strip().lower()
:
- Limpieza y conversión a
minúsculas:
re.sub(r'[^\w\s]', '',
texto)
: Reemplaza cualquier carácter que no sea una letra (\w
),
un número o un espacio en blanco (\s
) con una cadena
vacía (eliminándolos).
.strip()
: Elimina los
espacios en blanco al principio y al final de la cadena.
.lower()
: Convierte
toda la cadena a minúsculas.
-
return re.sub(r'\s+', '_',
texto)
:
- Reemplazo de espacios con guiones
bajos:
re.sub(r'\s+', '_', texto)
:
Reemplaza una o más ocurrencias consecutivas de espacios en blanco (\s+
)
con un solo guion bajo (_
).
Ejemplos de Uso:
Los ejemplos muestran cómo la función convierte
diferentes cadenas de texto al formato snake_case, manejando mayúsculas,
espacios y algunos caracteres especiales. El último ejemplo incluye una pequeña
modificación (comentada como opcional) para intentar manejar cadenas en formato
CamelCase antes de la conversión final a snake_case, separando las palabras por
espacios antes de aplicar la sustitución con guiones bajos.