Come posso dividere una stringa Unicode sui punti di codice in Python? (ad es. u00b7 o u2022)?
Domanda
Provai Tutto quanto Potrei pensare a ...
1. unicode_obj.split('\u2022')
2. re.split(r'\u2022', unicode_object)
3. re.split(r'(?iu)\u2022', unicode_object)
Niente ha funzionato
Il problema è che voglio dividere su personaggi speciali.
example string : u'<special char like middot:\u00b7 or bullet:\u2022> sdfhsdf <repeat special char> sdfjhdgndujhfsgkljng <repeat special char> ... etc'
Per favore aiuto.
Grazie in anticipo.
Soluzione
Ritenere:
>>> print '\u2022'
\u2022
>>> print len('\u2022')
6
>>> import unicodedata
>>> map(unicodedata.name, '\u2022'.decode('ascii'))
['REVERSE SOLIDUS', 'LATIN SMALL LETTER U', 'DIGIT TWO', 'DIGIT ZERO', 'DIGIT TWO', 'DIGIT TWO']
>>>
vs:
>>> print u'\u2022'
•
>>> print len(u'\u2022')
1
>>> map(unicodedata.name, u'\u2022')
['BULLET']
>>>
Questo dovrebbe fare la differenza tra text.split('\u2022')
e text.split(u'\u2022')
chiaro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow