【问题标题】:Python 2.7 range regex matching unicode emoticonsPython 2.7 范围正则表达式匹配 unicode 表情符号
【发布时间】:2014-04-11 10:26:26
【问题描述】:

如何使用 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

【问题讨论】:

    标签: regex python-2.7 unicode emoticons


    【解决方案1】:

    问题可能是由于使用了 Python 2 的“狭义构建”。也就是说,如果您启动解释器,您会发现 sys.maxunicode == 0xffffTrue

    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

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 2013-07-14
      • 2014-02-26
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多