【工程实践】python 去除\xa0、\u3000、\n、\u2800、\t等字符

这篇具有很好参考价值的文章主要介绍了【工程实践】python 去除\xa0、\u3000、\n、\u2800、\t等字符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.问题描述

        在处理数据时,会遇到\xa0、\u3000\u2800\t等Unicode字符串。需要对其进行处理。

2.空格类型说明

         空格可以分为两类,一类为普通文本空格,另一类为html实体空格。普通文本空格介绍普通半角空格普通全角空格。html实体空格介绍三种,分别为html实体不间断空格 )、html实体半角空格( )和html实体全角空格( )。

         1.普通半角空格:英文空格键。这是最常见的空格,如我们写代码时,按下空格键产生的就是这种空格键。正则里直接使用空格或者\s就能匹配,在python中对应的unicode码为\u0020

        2.普通全角空格:中文空格键。中文网页上常会出现,直接使用正则的\s匹配不到,unicode码为\u3000

        3.html实体不间断空格:html中的常用空格,出现在html中为&nbsp。网页上看不到,打开浏览器开发工具可以看到,unicode码为\u00A0,对应的十六进制为\xa0

        4.html实体半角空格:&ensp,unicode码为\u2002;

        5.html实体全角空格:&emsp,unicode码为\u2003;

3.解决方法

3-1.使用re.sub

        re.sub方法对普通文本空格和html实体空格两类全部有效,均可完成替换。

import re
#普通半角空格
String = "百度 百科"
#用unicode匹配
new_string = re.sub(r'\u0020',"*", String)
print(new_string)
#用\s匹配
new_string = re.sub(r'\s',"*", String)
print(new_string)
#用空格匹配
new_string = re.sub(r' ',"*", String)
print(new_string)

#普通全角空格
String = "百度\u3000百科"
#使用unicode匹配
new_string = re.sub(r'\u3000',"*", String)
print('使用unicode匹配结果:',new_string)
new_string = re.sub(r'\s',"*", String)
print('使用\s匹配结果:',new_string)
#用空格匹配
new_string = re.sub(r' ',"*", String)
print('使用空格匹配结果:',new_string)

#html实体不间断空格
String = "百度\xa0百科"
new_string = re.sub(r'\xa0',"*", String)
print(new_string)
String = "百度\u00A0百科"
new_string = re.sub(r'\u00A0',"*", String)
print(new_string)

#html实体半角空格
String = "百度\u2002百科"
#使用unicode匹配
new_string = re.sub(r'\u2002',"*", String)
print('使用unicode匹配结果:',new_string)
#html实体全角空格
String = "百度\u2003百科"
#使用unicode匹配
new_string = re.sub(r'\u2003',"*", String)
print('使用unicode匹配结果:',new_string)

\u3000,人工智能,python,爬虫,开发语言\u3000,人工智能,python,爬虫,开发语言

\u3000,人工智能,python,爬虫,开发语言\u3000,人工智能,python,爬虫,开发语言

3-2.使用repalce

        replace方法可以对‘普通半角空格’、‘普通全角空格’ 的unicode的字符完成替换。对html实体空格无效。

#普通半角空格
String = "百度 百科"
#用unicode匹配
new_string = String.replace('\u0020','*')
print('String',String)
print('用unicode匹配的new_string:',new_string)
#用\s匹配
new_string = String.replace(r'\s',"*")
print('用\s匹配的new_string:',new_string)
#用空格匹配
new_string = String.replace(r' ',"*")
print('用空格匹配的new_string:',new_string)

#普通半角空格
String = "百度\u3000百科"
#用unicode匹配
new_string = String.replace('\u3000','*')
print('用unicode匹配的new_string:',new_string)
#用\s匹配
new_string = String.replace(r'\s',"*")
print('用\s匹配的new_string:',new_string)
#用空格匹配
new_string = String.replace(r' ',"*")
print('用空格匹配的new_string:',new_string)

#html实体不间断空格
String = "百度\xa0百科"
new_string = String.replace(r'\xa0',"*")
print('new_string',new_string)

String = "百度\u00A0百科"
new_string = String.replace(r'\u00A0',"*")
print('new_string',new_string)

#html实体半角空格
String = "百度\u2002百科"
#使用unicode匹配
new_string = String.replace(r'\u2002',"*")
print('使用unicode匹配结果:',new_string)

#html实体全角空格
String = "百度\u2003百科"
#使用unicode匹配
new_string = String.replace(r'\u2003',"*")
print(String)
print('使用unicode匹配结果:',new_string)

​​​​​​​\u3000,人工智能,python,爬虫,开发语言\u3000,人工智能,python,爬虫,开发语言

 \u3000,人工智能,python,爬虫,开发语言\u3000,人工智能,python,爬虫,开发语言

Reference

1.Python爬虫处理\xa0、\u3000、\u2002、\u2003等空格_liqiang94的博客-CSDN博客_python \u3000文章来源地址https://www.toymoban.com/news/detail-790009.html

到了这里,关于【工程实践】python 去除\xa0、\u3000、\n、\u2800、\t等字符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python3中将\uXXXX字符串转换为可见字符串的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,从事机器学习以及相关的前后端开发工作。曾在阿里云、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。   本文主要介绍了Python3中将uXXXX字符串转换为可见字符串的解决方

    2023年04月08日
    浏览(48)
  • SpringCloud Alibaba - Seata 四种分布式事务解决方案(XA、AT)+ 实践部署(上)

    目录 一、Seata 分布式事务解决方案 1.1、XA 模式 1.1.1、XA模式理论 第一阶段: 第二阶段: 1.1.2、Seata 框架中的 XA 模式 第一阶段: 第二阶段: 1.1.3、XA 模式的优缺点 1.2.4、实现Seata 的 XA 模式 a)修改 application 文件(每一个参与事务的微服务) b)给发起全局事务中的入口方法

    2024年04月14日
    浏览(42)
  • PostgreSQL——编码“GBK“的字符0x0xa8 0x27在编码“UTF8“没有相对应值`

    问题:编码\\\"GBK\\\"的字符0x0xa8 0x27在编码\\\"UTF8\\\"没有相对应值 原因:客户端编码与服务端编码不一致  解决方案:修改客户端编码方式和服务端一致  

    2024年02月15日
    浏览(51)
  • 【工程实践】python实现多进程

            Python中比较常见的并发方式主要有两种:多线程和多进程。         多线程即在一个进程中启动多个线程执行任务。一般来说使用多线程可以达到并行的目的,但由于Python中使用了全局解释锁GIL的概念,导致Python中的多线程并不是并行执行,而是“交替执行”

    2024年02月10日
    浏览(21)
  • 【工程实践】python 合并多个csv文件

            处理数据时,有多个csv文件需要合并。有两个方法可以实现,第一个是可以通过python提供的pandas模块,借助 pd.concat()实现多个csv文件的合并。第二个是通过linux命令实现。 1-1 获得全部csv文件路径 1-2  查看数据 1-3 合并数据 2-1 合并数据         将所有的csv文件

    2024年02月11日
    浏览(76)
  • c++ 字符串去除指定的字符

    使用 std::string 的 erase 和 find 方法 循环查找并擦除特定字符,逐个字符地搜索并移除字符 使用 std::remove 算法和 erase std::remove 函数可以用来移除指定的字符,并返回一个新的“逻辑”结束位置。实际的字符串内容没有改变,但所有需要保留的字符已经被移动到字符串的开始位

    2024年03月17日
    浏览(51)
  • 【Qt之QString】去除“字符“或替换“字符“小技巧

    去除字符 在Qt中,可以使用以下函数来去除字符串中的字符。 QString remove(int i, int len) :删除字符串中从索引位置 i 开始长度为 len 的字符。 QString remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) :删除字符串中所有与字符 c 相匹配的字符。 cs 参数指定是否区分大小写,默认为

    2024年02月07日
    浏览(36)
  • 用js实现去除字符串首尾的空字符方法

    trim():去除字符串前后空格 结果显示: 正则表达式:(^s*)首部 、(s*$)尾部,用replace替换的方法将首部空字符串和尾部空字符串替换成 结果显示: split将字符串转变为数组,过滤条件filter()方法不等于\\\"\\\",用jion()将数组转化为字符串。 filter()方法会创建一个新数组,原数组的每

    2024年02月14日
    浏览(44)
  • php去除字符串两边空格空字符串换行方法

    在PHP中,可以使用以下几种方法去除字符串两边的空格、空字符串和换行符: 使用trim()函数去除字符串两边的空格和空字符串,例如: 使用preg_replace()函数去除字符串中的空格、空字符串和换行符,例如:     3、使用str_replace()函数去除字符串中的空格、空字符串和换行符,

    2024年02月05日
    浏览(53)
  • python编程从入门到实践(第2版)学习笔记(变量,字符串)

    变量是一种可以赋给值的标签。每一个变量都指向一个相关联的值,下列代码中 message 即为变量,指向的值为“Hello Python world !” 第二行的 print() 函数用于打印输出这个 message 变量所关联的值。 且变量的值是可以修改的,python中只有变量的最新值有效如下列代码。     变量

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包