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

news2024/10/2 1:24:23

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)

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)

​​​​​​​

 

Reference

1.Python爬虫处理\xa0、\u3000、\u2002、\u2003等空格_liqiang94的博客-CSDN博客_python \u3000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【反序列化漏洞-01】为什么要序列化

为什么要序列化百度百科上关于序列化的定义是,将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis,与数组类似)。以后,可以通过…

浅谈信安文章搜索引擎

一个搜索引擎的实现流程大概为:首先获取海量的数据,整理成统一的格式,然后交给索引程序建立索引,当索引建立好后,就可以进行搜索。简而言之就是:数据获取->数据检索->数据搜索 0x1数据获取 数据获取…

RK3399+FPGA+MIPI 方案细节之subLVDS to MIPI处理

#CROSSLINK系列 #CROSSLINK vs XO3L 总的来说XO3L的灵活性更强,更近似于一片通用的CPLD;CROSSLINK专用性更强。 针对subLVDS转换到MIPI的需求,CROSSLINK比较有优势,因为集成度更高,所以稳定性也更高。 #要点 #crossl…

死锁的总结

哲学家死锁造成的原因:我有你需要的,但你已经有了 饥饿与死锁的区别 死锁一旦发生一定又饥饿现象,但是饥饿现象产生不一定是死锁 历史上对于死锁的声音 死锁的方案 前面两个都是不允许死锁出现 前面都是概念性的东西 后面我们研究如何破坏…

【vue】vuex数据丢失怎么办?盘一盘vue传值的方法

【问题描述】 vuex的 store 中的数据是保存在运行内存中的,当页面刷新时,页面会重新加载 vue 实例,vuex 里面的数据就会被重新赋值,这样就会出现页面刷新vuex中的数据丢失的问题。 如何解决浏览器刷新数据丢失问题呢? …

Java-Springboot整合支付宝接口

文章目录一、创建支付宝沙箱二、使用内网穿透 nat app三、编写java程序四、访问一、创建支付宝沙箱 跳转 : 支付宝沙箱平台 1、进入控制台 2、创建小程序,编写名称和绑定商家即可 3、返回第一个页面,往下滑进入沙箱 4、进行相关的配置&a…

git push -u参数是什么意思?

背景 git push的时候,有时候会用-u参数,有时候不适用。这是为什么呢? 官方解释 -u--set-upstreamFor every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) a…

【 Java 组 】蓝桥杯省赛真题 [世纪末的星期] [幸运数] (持续更新中...)

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中...一、世纪末的星期二…

【设计模式】策略模式在Java工程中应用

在之前的文章中,曾经给大家介绍过策略模式:【设计模式】策略模式,在该篇文章中,我们曾很清楚的说到,策略模式主要解决的问题是:在有多种算法相似的情况下,解决使用 if...else 所带来的复杂和难以…

【Spring从成神到升仙系列 一】2023年再不会动态代理,就要被淘汰了

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

BingGPT 国内中转

BingGPT 国内中转 本项目的github地址 本项目最上层是提供一个使用BingGPT的web接口,仅供学习,如有侵权请联系作者。 预先准备: 一个可以访问bingGPT的外网服务器(可在tencent cloud 选购)一个在已经注册new_bing_list的账号 …

泰克示波器MD03012-一款高性能、高可靠性的仪器

泰克示波器MD03012是一款常见的仪器,以其出色的性能和高可靠性被广泛应用于电子工程、教学演示等领域。它采用先进的电子技术,具有高精度、高灵敏度和高可靠性等特点,能够满足工程师们在实际工作中的要求。泰克示波器MD03012拥有一套强大的功…

华为OD机试题,用 Java 解【数组排序】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Clickhouse学习(二):MergeTree存储结构

MergeTree一、MergeTree逻辑存储结构二、MergeTree物理存储结构三、总结一、MergeTree逻辑存储结构 如上图所示,在排序键(CountrID、Date)上做索引,数据会按照这两个字段先后排序ClickHouse是稀疏索引,每隔8192行做一个索引,如(a,1),(a,2),比如想查a,要读取[0,3)之间的内容,稀疏…

Python安装教程(附带安装包)

首先,打开python安装包的下载地址,https://www.python.org/downloads/,会有些慢 点击downloads中的windows 左侧是稳定的版本,我这边下的是3.8的,不想去官网下载的可以直接用我下载的这个3.8版本,https://…

隐私计算头条周刊(2.20-2.26)

开放隐私计算收录于合集#企业动态45个#周刊合辑45个#政策聚焦38个#隐私计算92个#行业研究37个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播…

Reids实战—黑马点评(三)秒杀篇

Reids实战—黑马点评(三)秒杀篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Reids实战—黑马点评(三)秒杀篇一、全局唯一I…

改进的 A*算法的路径规划(路径规划+代码+毕业设计)

引言 近年来,随着智能时代的到来,路径规划技术飞快发展,已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等,然而传统的路径规划算法在复杂的场景的表现并不如人意,例…

一些cmake error fixed

建完虚拟环境后 运行 pip install . 出现报错,显示svox2安装出错,然后开始进入到svox2中进行手动编译和安装。 1. cmake svox2/csrc pybind11找不到 conda install pybind11用 pip install 在虚拟环境中安装不行,据说会安装到全局下… 2. c…

Allegro如何标注PCB的尺寸参数操作指导

Allegro如何标注PCB的尺寸参数操作指导 在输出生产文件之前,需要对PCB的尺寸进行标注,如下图 用Allegro如何进行标注,具体操作如下 点击Manufacture选择Dimension Enviroment<