devo stringhe che sono multilingue consistere in entrambe le lingue che utilizzano gli spazi come separatore di parola (inglese, francese, ecc) e le lingue che non (cinese, giapponese, coreano).Python: un modo per eseguire questo split "ibrido"() su stringhe multilingue (ad esempio cinese e inglese)?
Data una tale stringa, voglio separare la parte inglese/francese/etc in parole usando spazi bianchi come separatore e separare la parte cinese/giapponese/coreana in singoli caratteri.
e voglio mettere di tutte quelle componenti separati in una lista.
Alcuni esempi probabilmente chiarire questo punto:
Caso 1: solo in inglese stringa. Questo caso è facile:
>>> "I love Python".split()
['I', 'love', 'Python']
Caso 2: cinese sola stringa:
>>> list(u"我爱蟒蛇")
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
In questo caso posso trasformare la stringa in un elenco di caratteri cinesi. Ma all'interno della lista sto ottenendo rappresentazioni unicode:
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
Come faccio a farlo per visualizzare i caratteri effettivi invece del unicode? Qualcosa di simile:
['我', '爱', '蟒', '蛇']
??
Caso 3: Un mix di inglese & cinese:
voglio trasformare una stringa di input come ad esempio
"我爱Python"
e lo trasforma in una lista come questa:
['我', '爱', 'Python']
È possibile fare qualcosa del genere?
Purtroppo, c'è un misfeature in corrente di Python il modulo 're' che preclude' re.split() 'a dividere su corrispondenze a lunghezza zero: http://stackoverflow.com/questions/2713060/why-doesnt-pythons-re-split-split-on-zero-length -matches - quindi non puoi usare espressioni regolari in Python per questo direttamente. –
Coreano utilizza spazi bianchi per la separazione delle parole. – Leovt