gpt4 book ai didi

python - 如何在Python中从字符串中提取表情符号和标志?

转载 作者:行者123 更新时间:2023-11-30 22:18:46 25 4
gpt4 key购买 nike

import emoji

def emoji_lis(string):
_entities = []
for pos,c in enumerate(string):
if c in emoji.UNICODE_EMOJI:
print("Matched!!", c ,c.encode('ascii',"backslashreplace"))
_entities.append({
"location":pos,
"emoji": c
})
return _entities

emoji_lis("👧🏿 مدیحہ🇵🇰 así, se 😌 ds 💕👭")
  • 匹配!! 👧\U0001f467
  • 匹配!! 🏿\U0001f3ff
  • 匹配!! 😌\U0001f60c
  • 匹配!! 💕\U0001f495
  • 匹配!! 👭\U0001f46d

我的代码适用于所有其他表情符号,但我如何检测国旗🇵🇰?

最佳答案

我认为没有任何图书馆可以做到这一点。但是,这可以通过函数来​​完成:

\U0001F1E6\U0001F1E8 是第一个 unicode 标志,\U0001F1FF\U0001F1FC 是最后一个,因此几乎涵盖了所有这些标志。有3 more这会导致一些问题。

这是一个检查输入是否为标志的函数:

def is_flag_emoji(c):
return "\U0001F1E6\U0001F1E8" <= c <= "\U0001F1FF\U0001F1FC" or c in ["\U0001F3F4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", "\U0001F3F4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", "\U0001F3F4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f"]

测试:

>>> is_flag_emoji('a')
False
>>> is_flag_emoji('😌')
False
>>> is_flag_emoji("""🇦🇮""")
True

因此,您可以相应地将 if 语句更改为 if c in emoji.UNICODE_EMOJI 或 is_flag_emoji(c):

但这有一个问题;由于很多标志是通过连接多个字符来制作的,因此您可能无法识别表情符号。

>>> s
'🇾🇪 here is more text 🇦🇩 and more'
>>>emoji_lis(s)
Matched!! 🇾 b'\\U0001f1fe'
Matched!! 🇪 b'\\U0001f1ea'
Matched!! 🇩 b'\\U0001f1e9'
[{'location': 0, 'emoji': '🇾'}, {'location': 1, 'emoji': '🇪'}, {'location': 22, 'emoji': '🇩'}]

关于python - 如何在Python中从字符串中提取表情符号和标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com