zwijanie białych znaków w łańcuchu
Mam ciąg, który wygląda tak:
"stuff . // : /// more-stuff .. .. ...$%$% stuff -> DD"
i chcę usunąć wszystkie znaki interpunkcyjne, uczynić wszystko wielkimi literami i zwinąć wszystkie białe znaki, aby wyglądały tak:
"STUFF MORE STUFF STUFF DD"
Czy jest to możliwe w przypadku jednego wyrażenia regularnego, czy muszę połączyć więcej niż dwa? Oto, co mam do tej pory:
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
Jedyną rzeczą, która nie działa, jest zawijanie białych znaków. Jakieś pomysły?