我得到了一个原始的 utf-8 字符串:
u'1\u670d-\u82f1\u96c4\u96c6\u7ed3'
我将它转换为字符串
s = str(u'1\u670d-\u82f1\u96c4\u96c6\u7ed3'.encode('utf8'))
print s
'1\xe6\x9c\x8d-\xe8\x8b\xb1\xe9\x9b\x84\xe9\x9b\x86\xe7\xbb\x93'
我想将数字 1 与其余字符串分开。
然后我尝试了:
s.split('\\')
['1\xe6\x9c\x8d-\xe8\x8b\xb1\xe9\x9b\x84\xe9\x9b\x86\xe7\xbb\x93']
s.split('\\x')
['1\xe6\x9c\x8d-\xe8\x8b\xb1\xe9\x9b\x84\xe9\x9b\x86\xe7\xbb\x93']
不是我想象的那样。
我终于灵光一闪,我做到了:
s.split('\xe6')
['1', '\x9c\x8d-\xe8\x8b\xb1\xe9\x9b\x84\xe9\x9b\x86\xe7\xbb\x93']
但问题是,我无法确保其他此类组合中的 utf-8 代码会以 '\xe6' 开头,所以我需要一种方法来区分具有任意 utf-8 代码的数字,然后将它们分开.
可以这样做吗?
最佳答案
如果它始终是一位数字,则只需索引第一项:
digit = s[0]
否则,您可以使用正则表达式来扫描它:
number = re.match(r'^\d+', s).group(0)
关于python - 如何在Python中用前面的数字分割utf-8字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25336654/