Ausblenden von Leerzeichen in einer Zeichenfolge

Ich habe eine Zeichenfolge, die so aussieht:

"stuff   .  // : /// more-stuff .. .. ...$%$% stuff -> DD"

und ich möchte alle Satzzeichen entfernen, alles in Großbuchstaben schreiben und alle Leerzeichen reduzieren, so dass es so aussieht:

"STUFF MORE STUFF STUFF DD"

Ist das mit einem Regex möglich oder muss ich mehr als zwei kombinieren? Das habe ich bisher:

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

Das einzige, was nicht funktioniert, ist das Zusammenbrechen des Leerzeichens. Irgendwelche Ideen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage