无损方法

好处:保留原来字符串的全部内容

缺点:耗内存,需要对源字符串进行url解码

这个是把对应的表情和英文符号进行urlencode 这样就可以保存原有的字符串,不会破坏原来的样式,直接对字符串进行url解码即可

import re
from urllib.parse import quote, unquote
from zhon import hanzi
from zhon.hanzi import punctuation  # 标签符号 def emoji_urlencode(self, text):'''表情生成urlencode:param text: 原始文本:return: 新文本'''# 方法一# r = re.compile("[^\u4e00-\u9fa5"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、"#                "〃《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏!?。。]")# 方法二r = re.compile("[^\u4e00-\u9fa5"{}]".format(punctuation))index_li = [m.start() for m in re.finditer(r, text)]  # 找到位置new_text = ''  # 生成新的文本result = [quote(text[i])for i in index_li]  # 替换结果for index, i in enumerate(text):if index in index_li:new_text += result.pop(0)else:new_text += text[index]return new_textif __name__ == '__main__':text = '?那一口,戒不掉了't = emoji_urlencode(text)print(t)print(unquote(t))  # 解码字符串

有损方式

直接替换原有的表情,会影响字原符串的完整性

# -*- coding: utf-8 -*-import redef filter_emoji(desstr,restr='[emoji]'):'''过滤表情'''try:co = re.compile(u'[\U00010000-\U0010ffff]')except re.error:co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')return co.sub(restr, desstr)if __name__ == '__main__':print('曼?就是矫')t = filter_emoji('曼?就是矫')print(t)

python 有损和无损 方式替换表情符号相关推荐

  1. 软件测试学习 之 Python 两种执行方式——python和python -m 的区别

    笔者使用的操作系统为windows 7,python解释器版为python3.7,pycharm版本为pycharm2018.3 如无特殊说明,代码均在此环境执行 目录 一般结论 简单例子 模块 作为 ...

  2. python 多种运行脚本方式

    python 多种运行脚本方式 文章目录 python 多种运行脚本方式 1. 脚本与模块 2. 什么是 Python 解释器? 3. 如何以交互方式运行 Python 代码 4. 解释器如何运行 P ...

  3. python用渐变色画圆_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  4. 【Android 插件化】Hook 插件化框架 ( 使用 Hook 方式替换插件 Activity 的 mResources 成员变量 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  5. Python与常见加密方式

    Python与常见加密方式 前言 数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对 ...

  6. python控制autocad_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  7. Python正则表达式如何进行字符串替换实例

    Python正则表达式如何进行字符串替换实例 Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. ...

  8. python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...

    一.编程语言的分类? 机器语言:直接使用二进制指令编程,直接操作硬件,必须考虑硬件细节. 汇编语言:用简写的英文标识符取代二进制去编写程序,直接操作硬件,必须考虑硬件细节. 高级语言:通过人类能够理解 ...

  9. 下列哪个不是python元组的定义方式_Python基础知识笔试

    Python基础知识笔试 单选题(2.5分*20题) 1. 下列哪个表达式在Python中是非法的? B A. x = y = z = 1 B. x = (y = z + 1) C. x, y = y ...

最新文章

  1. svn客户端文件显示灰色的对号代表什么
  2. 远程桌面连接后远程计算机注销,使用windows8.1 pro的远程桌面,当断开远程桌面时被控制端用户注销问题...
  3. 读《分布式一致性原理》JAVA客户端API操作3
  4. Python实用小技能,一个比一个高级!
  5. 【代码规范】google开源c\c++项目代码规范
  6. 基于MapReduce的贝叶斯网络算法研究参考文献
  7. C++ 字符串指针与字符串数组
  8. react http请求_React组件的应用分析
  9. 基于容器实现高并发网站
  10. struts2中的值栈对象ValueStack
  11. numpy与线性代数(简易版)
  12. 《监控》其实是讲一个年轻人彻底社会化的过程
  13. Oralce SQLPlus 以及shell脚本中spool输出到文件时的格式化输出
  14. Todoist Chrome:待办事项列表及任务管理
  15. c语言随机函数生成字符,c语言随机数生成加减乘除 用C语言编程随机产生一道......
  16. 嵌入式系统开发笔记100:使用FlyMcu下载程序到STM32单片机
  17. QT6.1.2下载和安装教程
  18. 为什么倡导企业使用电子招投标?
  19. Python词云图的几种制作方法
  20. CwRsync实现文件同步(windows或linux服务器通用)

热门文章

  1. Hyper-V搭建centos8
  2. fcpx插件:童年印象回忆复古视觉特效和转场Stupid Raisins Slide Pop
  3. 1Mbps带宽到底能够达到什么效果,看看下面的介绍就懂了。
  4. Qt编写可视化大屏电子看板系统8-调整间距
  5. UE4入门之软件安装
  6. c语言实验报告中致谢词,实验报告致谢词范文.doc
  7. python ipo模式有哪些_python ipo模型是什么意思
  8. 基于WPF的桌面宠物开发(一) :WPF简介+环境搭建+简单界面
  9. 使用md5进行加密解密
  10. Linux学习_系统进程概念