python - 正确识别字符串中的表情符号(Python)
问题描述
编辑:我在链接的重复问题中尝试了一种解决方案。答案使用regex
并且regex.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
是一个需要两个代码点的表情符号,特别是考虑到它被其他表情符号跟随并成功,中间没有空格。
以及如何可靠地正确提取所有表情符号?现在我使用一个简单的正则表达式,但它只适用于单个代码点,即我“销毁”标志。我该如何解决这个问题?
解决方案
推荐阅读
- python - 在数据框中的行之间添加特殊字符
- android - Flutter 向 Grid View 添加一个按钮
- php - 通过 AJAX 请求向服务器上的 php 文件推送数据到数据库的安全性
- metadata - Android中的RTSP帧元数据提取
- java - 405 方法不允许,弹簧启动,但我使用了 csrf 令牌头
- c# - C# 读取 USB Hid UPS 状态
- python - 如何使用网格环境创建一个 openAI 健身房观察空间
- docusignapi - 发送文档时的 ENVELOPE_HAS_DUPLICATE_RECIPIENTS
- paw-app - Paw - How do I disable Content-Type header?
- angularjs - Angular Js + Youtube 嵌入没有使用 ng-sanitize 与 ng-bing-html 一起渲染,如何解决?