¿Cómo puedo dividir correctamente una cadena que contiene una oración con caracteres especiales usando espacios en blanco como separador? Utilizando el método de división de expresiones regulares no puedo obtener el resultado deseado.python, regex split y carácter especial
código Ejemplo:
# -*- 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
La salida es:
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
mientras estoy en busca de una salida como:
s> La felicità è tutto
wordlist> ['La', ' ', 'felicità', ' ', 'è', ' ', 'tutto']
word> La
word>
word> felicità
word>
word> è
word>
word> tutto
que señalar que s es una cadena que se devuelve desde otro método, por lo que no puedo forzar la codificación como
s=u"La felicità è tutto"
En la documentación oficial de python de Unicode y reg-ex no he encontrado una explicación satisfactoria.
Gracias.
Alessandro
Se divide en caracteres que no son palabras, que no solo incluyen espacios, sino también (al parecer) caracteres acentuados. – mpen