正确识别字符串中的表情符号(Python)

编辑:我已经尝试了链接重复问题中的一种解决方案。使用regexregex.findall(r'\X',tweet)的答案有效。但是,我刚刚更新了regex软件包,但现在失败了。不知道为什么会这样。

我正在尝试从推文中正确提取所有表情符号。我的问题是某些表情符号需要一个代码点,而其他表情符号(例如国家/地区标志)需要两个代码点。例如:

tweet = RT @CreepyHorrorGal: • ???☠?? #creepy #horror

这是我在Python中打印推文时看到的。但是,当我这样做时:

for c in tweet:
    print(c)

我告诉我:

...
a
l
:

•

?
?
?
☠
?
?
...

在这里,标志的两个代码点被分开并分别解释。还有以下代码

tweet.encode('utf-16','surrogatepass').decode('utf-16').encode("raw_unicode_escape").decode("latin_1")

给我:

RT @CreepyHorrorGal: \u2022 \U0001f453\U0001f1ec\U0001f1e7\u2620\U0001f632\U0001f922 #creepy #horror

原则上,我理解所有输出。但是,我想知道浏览器(Jupyter笔记本电脑)是否知道\U0001f1ec\U0001f1e7是一个需要两个代码点的表情符号,尤其是考虑到它后面是其他表情符号,并且后面没有空格。

该如何正确可靠地提取所有表情符号?现在,我使用一个简单的正则表达式,但它仅适用于单个代码点,即“销毁”标志。我该怎么解决?

lqy33333333 回答:正确识别字符串中的表情符号(Python)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3068375.html

大家都在问