tengo una cadena que tipo de parece a esto:colapso de los espacios en blanco en una cadena
"stuff . // : /// more-stuff .. .. ...$%$% stuff -> DD"
y quiero a quitarse toda la puntuacion, hacer que todo en mayúsculas y contraer todos los espacios en blanco para que se parezca a esto:
"STUFF MORE STUFF STUFF DD"
¿Esto es posible con una expresión regular o necesito combinar más de dos? Esto es lo que tengo hasta ahora:
def normalize(string):
import re
string = string.upper()
rex = re.compile(r'\W')
rex_s = re.compile(r'\s{2,}')
result = rex.sub(' ', string) # this produces a string with tons of whitespace padding
result = rex.sub('', result) # this reduces all those spaces
return result
Lo único que no funciona es el colapso de los espacios en blanco. ¿Algunas ideas?
Estoy de acuerdo en que esta sería definitivamente la forma más sencilla de abordar el problema. – Amber
Supongo que debería ser "cadena" y no "resultado" en el argumento de rex.sub? ¿O solo está reemplazando parte del código del usuario? –
@Brooks, tienes razón - SOY TAN adverso a seguir los nombres de los módulos integrados y estándar, que cualquier cosa PERO la cadena voló fuera de mi alcance. Déjame editar para arreglar, ¡y gracias! –