python将3字节utf8字符拆分为unicode字符串

假设我们在
python中有一个unicode字符串,

s =你“abc你好def啊”

现在我想用no-ascii字符拆分,结果如下

result = [“abc”,“你好”,“def”,“啊”]

那么,如何实现呢?

最佳答案 使用正则表达式,您可以简单地分为“有或没有”a-z字符.

>>> import re
>>> re.findall('([a-zA-Z0-9]+|[^a-zA-Z0-9]+)', u"abc你好def啊")
["abc", "你好", "def", "啊"]

或者,使用所有ASCII

>>> ascii = ''.join(chr(x) for x in range(33, 127))
>>> re.findall('([{}]+|[^{}]+)'.format(ascii, ascii), u"abc你好def啊")
['abc', '你好', 'def', '啊']

或者,甚至更简单,如@Dolda2000所建议的那样

>>> re.findall('([ -~]+|[^ -~]+)', u"abc你好def啊")
['abc', '你好', 'def', '啊']
点赞