Come posso dividere correttamente una stringa contenente una frase con caratteri speciali usando gli spazi bianchi come separatore? Utilizzo del metodo split regolare Non riesco a ottenere il risultato desiderato.python, regex split e carattere speciale
codice Esempio:
# -*- coding: utf-8 -*-
import re
s="La felicità è tutto" # "The happiness is everything" in italian
l=re.compile("(\W)").split(s)
print " s> "+s
print " wordlist> "+str(l)
for i in l:
print " word> "+i
L'output è:
s> La felicità è tutto
wordlist> ['La', ' ', 'felicit', '\xc3', '', '\xa0', '', ' ', '', '\xc3', '', '\xa8', '', ' ', 'tutto']
word> La
word>
word> felicit
word> Ã
word>
word> ?
word>
word>
word>
word> Ã
word>
word> ?
word>
word>
word> tutto
mentre io sto cercando un output come:
s> La felicità è tutto
wordlist> ['La', ' ', 'felicità', ' ', 'è', ' ', 'tutto']
word> La
word>
word> felicità
word>
word> è
word>
word> tutto
da notare che s è una stringa che viene restituito da un altro metodo, quindi non posso forzare la codifica come
s=u"La felicità è tutto"
Sulla documentazione Python ufficiale di Unicode e reg-ex non ho trovato una spiegazione soddisfacente.
Grazie.
Alessandro
Si sta dividendo su caratteri non di parole, che non include solo spazi, ma anche caratteri (apparentemente) accentati. – mpen