首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中拆分emoji unicode字符串

如何在python中拆分emoji unicode字符串
EN

Stack Overflow用户
提问于 2017-07-20 05:00:34
回答 1查看 551关注 0票数 0

我正在接收来自聊天应用程序的表情,当有多个表情时,我想将每个表情符号分开。我能够捕获单个的表情符号,因为unicode的value.but拆分函数不适用于多个表情符号,values.This代码是用于单个表情符号的

代码语言:javascript
复制
def getEmoji(data)
    sleepy_face = [u'\U0001F6CC', u'\U0001F634', u'\U0001F4A4']

    if (data in sleepy_face):
        return emoji.emojize('Are you sleepy? :slightly_smiling_face:', use_aliases=True)

我试着用这个来分离多个表情

代码语言:javascript
复制
encode_data=data.encode('raw_unicode_escape')
find_data = encode_data.split(b'\\\\')
for extract_data in find_data:
    print(extract_data)
    if (extract_data in sleepy_face):
        return emoji.emojize('Are you sleepy? :slightly_smiling_face:', use_aliases=True)  

拆分方法再次返回encode_data。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 05:42:30

代码语言:javascript
复制
import re
data = u'\U0001f6cc\U0001f634\U0001f4a4'
for i in re.findall(ur'..', data):
    print i
    if i in sleepy_face:
        return 

跑步时:

代码语言:javascript
复制
re.findall(ur'.', data) 

你会得到:

代码语言:javascript
复制
[u'\ud83d', u'\udecc', u'\ud83d', u'\ude34', u'\ud83d', u'\udca4']

3表情符号== 6 unicode chars.

另一种方式是:

代码语言:javascript
复制
s =  u'\U0001F6CCabc\U0001F634bcd\U0001F4A4'
for i in re.findall(ur'([\ud000-\udfff][\ud000-\udfff])', s): 
    # change range '\ud000'-'\udfff'
    print i 

thx @IgnacioVazquez-Abrams编辑:如果使用UCS-4的Python:

代码语言:javascript
复制
for i in re.findall(".", data):
    if i in sleepy_face:
        print i
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45205537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档