如何使用python 2.7正则表达式计算字符串中unicode表情符号的数量?我尝试了这个问题的第一个答案。但它一直显示无效的表达错误。
re.findall(u'[\ U0001f600- \ U0001f650]',s.decode('utf-8'))无效并显示无效的表达错误
How to find and count emoticons in a string using python?
“谢谢你帮忙(Emoticon1)笑脸图释岩石!(Emoticon2)”
数:2
答案 0 :(得分:0)
问题可能是因为使用了"狭窄的构建" Python 2.也就是说,如果你启动翻译,你会发现sys.maxunicode == 0xffff
是True
。
This site有一些有关Python广泛构建的有趣说明(在Linux上常见,但根据我的经验,不是,正如链接所示,在OS X上)。这些构建在内部使用UCS-4对字符进行编码,因此似乎更加支持更高范围的Unicode代码点,例如您正在讨论的范围。窄版本显然在内部使用UTF-16,因此使用"代理对"编码这些更高的代码点。我认为这是您在尝试编译此正则表达式时看到bad character range
错误的原因。
我知道的唯一解决方案是切换到python版本> = 3.3 no longer has the wide/narrow distinction如果可以,或install a wide Python build