博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python过滤emoji
阅读量:6124 次
发布时间:2019-06-21

本文共 1216 字,大约阅读时间需要 4 分钟。

参考博客:http://my.oschina.net/jiemachina/blog/189460

1. 将emoji表情替换为指定字符串

1 import re 2 def filter_emoji(desstr,restr=''): 3     ''' 4     过滤表情 5     ''' 6     try: 7         co = re.compile(u'[\U00010000-\U0010ffff]') 8     except re.error: 9         co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')10     return co.sub(restr, desstr)

2. 将字符串还原为emoji字符

1 def str_2_emoji(emoji_str): 2     ''' 3     把字符串转换为表情 4     ''' 5     if not emoji_str: 6         return emoji_str 7     h = HTMLParser.HTMLParser() 8     emoji_str = h.unescape(h.unescape(emoji_str)) 9     #匹配u"\U0001f61c"和u"\u274c"这种表情的字符串10     co = re.compile(ur"u[\'\"]\\[Uu]([\w\"]{9}|[\w\"]{5})")11     pos_list=[]12     result=emoji_str13     #先找位置14     for m in co.finditer(emoji_str):15         pos_list.append((m.start(),m.end()))16     #根据位置拼接替换17     for pos in range(len(pos_list)):18         if pos==0:19             result=emoji_str[0:pos_list[0][0]]20         else:21             result=result+emoji_str[pos_list[pos-1][1]:pos_list[pos][0]]22         result = result +eval(emoji_str[pos_list[pos][0]:pos_list[pos][1]])23         if pos==len(pos_list)-1:24             result=result+emoji_str[pos_list[pos][1]:len(emoji_str)]25     return result

 

转载地址:http://ynfua.baihongyu.com/

你可能感兴趣的文章
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>