【发布时间】:2016-01-08 14:34:54
【问题描述】:
我有一个正则表达式来检测表情符号:
emoji = u'(\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f\ude80-\udeff]|[\u2600-\u26FF\u2700-\u27BF])'
我用这个命令进行测试:
re.match(emoji, u'\U0001f602', re.UNICODE) # "????"
问题是如果在我的 macOS 机器上找到匹配项,但在 Linux Debian 上不是
使用来自 conda 发行版的 ipython 4.0.1 和 Python 2.7.11。
为什么在 Linux 上匹配问题?
【问题讨论】:
-
请编辑您的 Q 以显示未被捕获的示例表情符号。祝你好运。
-
这个问题与是否狭窄的构建有关。但我的观点是 Anaconda 有不同的构建取决于系统。无论如何,如果代码是多系统的,唯一的方法是有两个选项:
emoji = u'[\U0001F300-\U0001F64F\U0001F680-\U0001F6FF\u2600-\u26FF\u2700-\u27BF]' try: unicodeCompile(emoji) except: emoji = u'(\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f\ude80-\udeff]|[\u2600-\u26FF\u2700-\u27BF])'
标签: python regex linux anaconda conda