python - 识别字符串中括号中的表情符号
问题描述
我已将 Skype 消息存储为字符串(在 Android 手机上)。字符串可以包含 Skype 表情符号。例如,一个字符串可以是“这是一个测试(笑)”。表情符号被编码在括号中,例如(笑)、(微笑)等。
现在,我想计算一个句子中表情符号的数量,并从句子中删除表情符号。当然,我可以只计算 () 对的数量并删除它们,但这也会删除括号中给出的正常文本。此外,在极少数情况下,表情符号也可能以 :( 或 :/ 等形式给出。
有没有一种优雅的方法来计算字符串中表情符号的数量并在 Python 中删除它们?
解决方案
请注意,Skype 和其他几个程序使用其“表情符号”格式。真正的表情符号格式是严格指定的。有一个用于处理真正表情符号的 Python 库:emoji。您可以尝试使用函数delimiters
参数和emojize
函数找到您的表情符号emoji_lis
:
import emoji
waka = ':smile: :) (smile) :smiling_face: WAKA (sign_of_the_horns_medium-light_skin_tone) :speak-no-evil_monkey:'
print(emoji.emoji_lis(emoji.emojize(waka, use_aliases=True)))
[{'location': 0, 'emoji': ''}, {'location': 13, 'emoji': '☺'}, {'location': 63, 'emoji': ''}]
print(emoji.emoji_lis(emoji.emojize(waka, delimiters=('(', ')'))))
[{'location': 39, 'emoji': ''}]
请注意,您不会找到微笑(例如:)
等:(
),只有表情符号。您也无法在文本中找到每个“表情符号”,因为您无法保证 Skype 使用的是官方表情符号名称(此外,我确信它没有使用它们)。如果你也想找到微笑,你应该用微笑、Skype“表情符号”等构建自己的字典。
推荐阅读
- html - 无法让我的网站徽标与汉堡包图标出现在同一行
- swift - NSTableView 和 swift:按下箭头并选择最后一行时如何选择第一行?
- java - 在 JUnit 测试中强制出现 JAXBException
- python - 无法连接管道工 - 获得网络错误 404 localhost:3582
- python - 如何将 for 循环中的元素打印到列表中?
- lua - lua和javascript之间的不同数字浮点数
- powershell - 如何使用 PowerShell 在 Windows 2008 R2 中获取脱机群集物理磁盘资源的磁盘编号
- join - 如果值存在,使用 linux join 命令更新文本文件中的字段
- docker - 如何让 Laravel 和 Lumen 项目同时使用 Docker 同时运行?
- bash - 满足条件时不需要增加循环