在 python3 中找到一个字符串中的表情符号
Find there is an emoji in a string in python3
我想检查一个字符串是否只包含一个表情符号,使用 Python 3.
例如,有一个 is_emoji
函数可以检查字符串是否只有 个表情符号。
def is_emoji(s):
pass
is_emoji("") #True
is_emoji("◼️") #False
我尝试使用正则表达式,但表情符号没有固定长度。例如:
print(len("◼️".encode("utf-8"))) # 6
print(len("".encode("utf-8"))) # 4
这适用于 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
结合沙丘的回答避免输入所有表情符号:
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 个项目,但它确实有效。
您可以尝试使用这个 emoji 包。它主要用于将转义序列转换为 unicode 表情符号,但因此它包含一个最新的表情符号列表。
from emoji import UNICODE_EMOJI
def is_emoji(s):
return s in UNICODE_EMOJI
虽然有些复杂,因为有时两个 unicode 代码点可以映射到一个可打印字形。例如,人类表情符号后跟 "emoji modifier fitzpatrick type" 应该修改前面表情符号的颜色;并且某些由 "zero width joiner" 分隔的表情符号应被视为单个字符。
我想检查一个字符串是否只包含一个表情符号,使用 Python 3.
例如,有一个 is_emoji
函数可以检查字符串是否只有 个表情符号。
def is_emoji(s):
pass
is_emoji("") #True
is_emoji("◼️") #False
我尝试使用正则表达式,但表情符号没有固定长度。例如:
print(len("◼️".encode("utf-8"))) # 6
print(len("".encode("utf-8"))) # 4
这适用于 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
结合沙丘的回答避免输入所有表情符号:
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 个项目,但它确实有效。
您可以尝试使用这个 emoji 包。它主要用于将转义序列转换为 unicode 表情符号,但因此它包含一个最新的表情符号列表。
from emoji import UNICODE_EMOJI
def is_emoji(s):
return s in UNICODE_EMOJI
虽然有些复杂,因为有时两个 unicode 代码点可以映射到一个可打印字形。例如,人类表情符号后跟 "emoji modifier fitzpatrick type" 应该修改前面表情符号的颜色;并且某些由 "zero width joiner" 分隔的表情符号应被视为单个字符。