文档章节

python 表情过滤

okker
 okker
发布于 2014/01/02 10:00
字数 240
阅读 3268
收藏 4

注意替换的这些emoji是标准的表情字符,每个表情本来是2个字节,替换成字符串后,每个表情就变成12个字符了,浪费了很多空间,不过简单,不需要专门写个map一一对应了;

把表情变成字符串

def filter_emoji(desstr,restr=''):
    '''
    过滤表情
    '''
    try:
        co = re.compile(u'[\U00010000-\U0010ffff]')
    except re.error:
        co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
    return co.sub(restr, desstr)

把字符串变成表情

def str_2_emoji(emoji_str):
    '''
    把字符串转换为表情
    '''
    if not emoji_str:
        return emoji_str
    h = HTMLParser.HTMLParser()
    emoji_str = h.unescape(h.unescape(emoji_str))
    #匹配u"\U0001f61c"和u"\u274c"这种表情的字符串
    co = re.compile(ur"u[\'\"]\\[Uu]([\w\"]{9}|[\w\"]{5})")
    pos_list=[]
    result=emoji_str
    #先找位置
    for m in co.finditer(emoji_str):
        pos_list.append((m.start(),m.end()))
    #根据位置拼接替换
    for pos in range(len(pos_list)):
        if pos==0:
            result=emoji_str[0:pos_list[0][0]]
        else:
            result=result+emoji_str[pos_list[pos-1][1]:pos_list[pos][0]]
        result = result +eval(emoji_str[pos_list[pos][0]:pos_list[pos][1]])
        if pos==len(pos_list)-1:
            result=result+emoji_str[pos_list[pos][1]:len(emoji_str)]
    return result



© 著作权归作者所有

共有 人打赏支持
okker
粉丝 7
博文 37
码字总数 18977
作品 0
东城
程序员
一个很皮的实践 Python自动生成表情包

作为一个数据分析师,应该信奉一句话----"一图胜千言"。不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 不仅仅是一种符号,更是一种文化;是促进社交乃至社会...

j2iayu7y
04/16
0
0
用 python 爬取微博评论并手动分词制作词云

最近上海好像有举行个什么维吾尔族的秘密时装秀,很好看的样子,不过我还没时间看。但是微博上已经吵翻了天,原因是 好吧,这不是我们关心的,我的心里只有学习 Python 爬虫 本次爬取的是这条...

teaGod
2017/11/23
0
0
Python多线程爬图&Scrapy框架爬图

一、背景 对于日常Python爬虫由于效率问题,本次测试使用多线程和Scrapy框架来实现抓取斗图来表情。 由于IO操作不使用CPU,对于IO密集(磁盘IO/网络IO/人家交互IO)型适合用多线程,对于计算...

KaliArch
今天
0
0
Python自动生成表情包,python在手,从此斗图无敌手

作为一个数据分析师,应该信奉一句话----"一图胜千言"。不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化;是促进社交乃...

qq_40991386
05/09
0
0
用Python从多个文件中过滤某个字段的操作

北京-greenday(197195824) 10:58:38 请问一下 我当前目录下 有很多日志,命名格式为Connect.log.2013-07-01 一直到Connect.log.2013-07-24 我想从这些日志里面去过滤一个字段 '余额不足' 应该...

雷神雨石
2013/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

获取多个集合列表的笛卡尔积

获取多个集合笛卡尔积 电商中典型业务场景:商品搜索 单属性属性值之间为并查询 不同属性的属性值之间查询为与查询 import java.util.ArrayList;import java.util.List;/** * Created w...

键走偏锋
14分钟前
0
0
echarts 迁移地图 控制鼠标缩放大小比例

在网上找了好久没有找到解决方式,还是重新看了一下文档,终于找到的解决方案, zoom:1, //默认显示级别 scaleLimit:{min:1,max:3}, // 缩放级别 echarts 文档-配置项链接 http://echarts.b...

心驰
17分钟前
0
0
Boot2Docker ISO is out-of-date,

Boot2Docker ISO is out-of-date, downloading the latest release. 使用docker-machine时无法更新Boot2Docker ISO导致创建vm machine失败 解决方法:关闭网络,创建好之后再开启...

writeademo
25分钟前
0
0
在 Tomcat 中设置 Tapestry 框架的 html 热加载

如果开发中使用到了 Tapestry 这个框架,如果事先没有设置过的话,开发的时候 html 是不会热加载的,也就是说修改了 html 文件,不能刷新浏览器后立马看到修改完的效果,必须先重新启动应用服...

LeoXu
47分钟前
0
0
【微服务】开启巨石应用到微服务的探索

背景 在过去的一年时间里,我一直在从事一件事情,将现有的单体应用(巨石应用)向微服务改造。 接下来,将持续整理一些在微服务路上的学习与成长。 为什么要做微服务 单体应用,开发、部署简...

艳沐石
57分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部