lea*_*ner 4 python unicode python-3.x emoji
如何识别不同颜色的相同表情符号?
示例:应该被认为是相同的
编辑:目前我正在使用表情包
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
Run Code Online (Sandbox Code Playgroud)
emoji 包上没有可用的方法来处理不同颜色的相同符号。但是,我们可以通过将表情符号名称与常用字符串进行比较来实现这一点(这里是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")
Run Code Online (Sandbox Code Playgroud)
有关支持的表情符号列表及其名称,请参阅此处的源代码。
每个竖起大拇指的表情符号都以代码点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)
Run Code Online (Sandbox Code Playgroud)
输出
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)
Run Code Online (Sandbox Code Playgroud)
我认为您不需要在您的用例中使用正则表达式,您只需使用表情符号的长度即可:
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)}')
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
您可以使用与您的用例类似的一些逻辑get_default_emoji,因为无论是否存在肤色修改器,它都会返回相同的表情符号。
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |