我想使用Python 3检查字符串是否只包含一个表情符号。
例如,有一个is_emoji
函数可以检查字符串是否只有 一个表情符号。
def is_emoji(s):
pass
is_emoji("") #True
is_emoji("◼️") #False
我尝试使用正则表达式但是emojis没有固定的长度。例如:
print(len("◼️".encode("utf-8"))) # 6
print(len("".encode("utf-8"))) # 4
答案 0 :(得分:6)
您可以尝试使用此emoji包。它主要用于将转义序列转换为unicode表情符号,但结果它包含一个最新的表情符号列表。
CHttpRequest
虽然有并发症,因为有时两个unicode代码点可以映射到一个可打印的字形。例如,人类表情符号后跟一个表情符号修饰符fitzpatrick类型"应该修改前面表情符号的颜色;并且某些表情符号由一个零宽度的木匠"应该像对待一个角色一样对待。
答案 1 :(得分:3)
这适用于Python 3:
def is_emoji(s):
emojis = "◼️" # add more emojis here
count = 0
for emoji in emojis:
count += s.count(emoji)
if count > 1:
return False
return bool(count)
测试:
>>> is_emoji("")
True
>>> is_emoji('◼')
True
>>> is_emoji("◼️")
False
结合Dunes的答案,避免输入所有表情符号:
from emoji import UNICODE_EMOJI
def is_emoji(s):
count = 0
for emoji in UNICODE_EMOJI:
count += s.count(emoji)
if count > 1:
return False
return bool(count)
这并不快,因为UNICODE_EMOJI
包含近1330项,但它确实有效。