我有一个基本上代表unicode表情符号的字符串列表,例如:
emoji[0] = 'U+270DU+1F3FF'
我想转换这个"几乎" unicode表情符号表示其真正的表情符号表示,以便我可以搜索包含这些表情符号的文本文档,例如:
emoji[0] = emoji[0].replace('U+', '\U000')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \UXXXXXXXX escape
我该如何实现?
答案 0 :(得分:3)
可以使用可变数字表示的解决方案:
>>> import re
>>> e = 'U+270DU+1F3FF'
>>> def emojize(match):
... return chr(int(match.group(0)[2:], 16))
>>> re.sub(r"U\+[0-9A-F]+", emojize, e)
'✍'
答案 1 :(得分:2)
这是因为270D
中有4位数,1F3FF
中有5位数:
>>> e = 'U+270D'
>>> print e.replace('U+', '\U0000').decode('unicode-escape')
✍
>>> e = 'U+1F3FF'
>>> print e.replace('U+', '\U000').decode('unicode-escape')