无损方法

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

缺点:耗内存,需要对源字符串进行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. ASP.NET 如何动态修改 title Meta link标签
  2. adcclk最大_STM32 ADC转换时间
  3. 深入理解右值引用,move语义和完美转发
  4. 某测试仪控制系统的设计方案--ARM+FPGA+NIOS
  5. c# 多线程实现ping 多线程控制控件
  6. 关于收集,标准化和集中化处理Golang日志的一些建议
  7. 美的集团:董事长减持两千万股套现13亿属个人资产配置需要
  8. 计算机网络与社会需求,计算机网络的技术论文计算机网络与社会需求.doc
  9. PHP中的方形按钮怎么敲,php 魔术方法使用说明
  10. [转] Spring XML配置十二个最佳实践
  11. DB - 常用SQL积累
  12. 神经网络不胜语__M-P模型似可寻
  13. 数据挖掘导论课后习题答案-第六章
  14. Word文档插入没有可用的联机内容
  15. Java 编程问题:三、使用日期和时间
  16. 在线png转换成jpg、jpg转png、各种转
  17. php字符串函数处理emoji,PHP中处理内容含有emoji表情的几种方式
  18. 计网PPT 第六章 应用层
  19. latex 参考文献没有显示_LaTeX 参考文献的处理
  20. oracle 远程访问配置,C#教程之Oracle 远程访问配置

热门文章

  1. WampServer中localhost无法打开怎么办
  2. 03.random_forest_demo
  3. 今年流行的3步走,学习前端方法路径总结
  4. Datawhale_大数据0期
  5. 深度估计(Depth Estimation)
  6. Openstack之Keystone组件解析
  7. 跳跳涂鸦——向上跳动游戏(学习笔记)
  8. 基于Spring boot框架开发的电商网站系统
  9. 经典书摘:基于信用本质,区块链应用的9大场景
  10. 游戏直播平台新赛程:负重前行与危中求生