如何在Python中根据编码点分割unicode字符串?(例如:\u00B7或\u2022)

1 投票
1 回答
2309 浏览
提问于 2025-04-17 07:36

我试过了所有我能想到的方法...

1. unicode_obj.split('\u2022')
2. re.split(r'\u2022', unicode_object)
3. re.split(r'(?iu)\u2022', unicode_object)

但是都没用

问题是我想要在特殊字符上进行分割。

example string : u'<special char like middot:\u00b7 or bullet:\u2022> sdfhsdf <repeat special char> sdfjhdgndujhfsgkljng <repeat special char> ... etc'

请帮帮我。

提前谢谢你。

1 个回答

9

考虑一下:

>>> 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']
>>> 

对比:

>>> print u'\u2022'
•
>>> print len(u'\u2022')
1
>>> map(unicodedata.name, u'\u2022')
['BULLET']
>>> 

这应该能让你清楚地理解 text.split('\u2022')text.split(u'\u2022') 之间的区别。

撰写回答