如何识别相同的不同颜色的表情符号?
例:应该被认为是相同的
编辑:目前我正在使用表情符号包
import regex
import emoji
exm = "poli kariku fans adi like sub tharamo"
characters = regex.findall("\X",exm)
for char in character:
if char in emoji.UNICODE_EMOJI:
#do something发布于 2020-09-26 12:38:38
我不认为您需要在用例中使用regex,您可以只使用表情符号的长度:
import emoji
NUM_COLUMNS = 4
TABLE_COLUMN_WIDTH = 18
def is_emoji(s):
return s in emoji.UNICODE_EMOJI
def is_default_emoji(s):
return len(s) == 1 and s in emoji.UNICODE_EMOJI
def get_default_emoji(s):
return s[0] if s in emoji.UNICODE_EMOJI else None
def pretty_print_line(line):
print(''.join(word.ljust(TABLE_COLUMN_WIDTH) for word in line.split()))
text = "poli kariku fans adi like sub tharamo"
pretty_print_line("string is_emoji is_default_emoji get_default_emoji")
print("=" * NUM_COLUMNS * TABLE_COLUMN_WIDTH)
for s in text.split():
pretty_print_line(f'{s} {is_emoji(s)} {is_default_emoji(s)} {get_default_emoji(s)}')输出:
string is_emoji is_default_emoji get_default_emoji
========================================================================
poli False False None
kariku False False None
fans False False None
adi False False None
like False False None
True False
True False
True False
True False
True False
True True
sub False False None
tharamo False False None 您可以在用例中使用一些类似于get_default_emoji的逻辑,因为它会返回相同的表情符号,而不管是否存在肤色修饰符。
发布于 2020-09-26 12:19:57
在表情符号包上没有任何方法可以用相同的颜色来处理相同的符号。但是,我们可以通过比较表情符号名和普通字符串(这里是thumbs_up)来实现这一点。
试试下面的代码。
import regex
import emoji
exm = "poli kariku fans adi like sub tharamo"
characters = regex.findall("\X",exm)
for char in characters:
if char in emoji.UNICODE_EMOJI:
if "thumbs_up" in (emoji.demojize(char)):
print("It is thumbs_up")对于支持的emojis列表及其名称,请参考源代码这里。
发布于 2020-09-26 12:36:35
每个大拇指向上的表情符号都以代码点1F44D ('THUMBS UP SIGN')开头,后面跟着肤色组件代码点,这样您就可以像这样过滤它们:
thumbs_up = chr(0x1F44D) # or '\N{THUMBS UP SIGN}' or just ''
thumbs = filter(lambda c: c.startswith(thumbs_up), characters)
for thumb in thumbs:
print(thumbs)输出
https://stackoverflow.com/questions/64077201
复制相似问题