ho una stringa di quel tipo di simile a questo:collasso spazi in una stringa
"stuff . // : /// more-stuff .. .. ...$%$% stuff -> DD"
e voglio togliere tutta la punteggiatura, rendere tutto maiuscolo e comprimere tutti gli spazi in modo che assomiglia a questo:
"STUFF MORE STUFF STUFF DD"
E 'possibile con una regex o devo combinare più di due? Questo è quello che ho finora:
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
L'unica cosa che non funziona è lo spazio vuoto che crolla. Qualche idea?
Sono d'accordo che questo sarebbe sicuramente il modo più semplice per affrontare il problema. – Amber
Suppongo che dovrebbe essere "stringa" e non "risultato" nell'argomento di rex.sub? O è solo la sostituzione di parte del codice dell'utente? –
@Brooks, hai ragione - sono così contrario a mettere in ombra i nomi dei moduli e dei moduli standard, che qualsiasi cosa mi sia sfuggita dalle corde. Fammi modificare per risolvere, e grazie! –