python去除空格,tab制表符和\\n换行符的小技巧分享
作者:AshleyXM 发布时间:2022-05-12 14:20:39
python去除空格,tab制表符和\n换行符
python中常用的替换字符串的函数有replace(),其用法相信大家都比较熟悉
举个例子
str="hello world hi there"
str.replace(" ","") #将str中的空格用空串替代,str本身不变,只改变显示的结果
然而,当处理大量文本的时候,需要把文本中所有的空格、制表符和换行符全部都换为空串时,replace()函数不是一个好的选择。
原因是首先写法太复杂,其次是它的替代效果太局限,我之所以这么说是因为今天在做项目的时候遇到的一个给定的文本中出现的空格很怪异,它既不是普通的单个空格,也不是制表符,更不是换行符,最后用replace()来做怎么都替换不了那个“怪异”的空格。
这里推荐使用re模块中的sub()函数来去除字符串中的所有空格,制表符和换行符,用法如下:
import re
str="""
hello 123 world 456
hello wish you good luck!
"""
print(re.sub('\s|\t|\n','',str)) #\s代表空格,\t代表制表符,\n代表换行符
这种写法和replace()比起来更简单,而且re.sub()的使用也很灵活,所以建议使用re.sub()来实现去除空格的任务。
上面的代码我发现还可以更加简化:
print(re.sub('\s','',str))
即re.sub()函数的pattern参数中不包含\t和\n也可以实现替换它们的功能,我想应该是\s包含了\t和\n,这也是为什么我所遇到的“怪异”的空格re.sub()能去掉的原因了吧。但是\t不包含\s和\n的功能,\n也不包含\s和\t的功能,不要误用哦!
python内容去掉“空格,制表符,其他空白”
学习python爬虫的时候,部分内容无法用xpath匹配,就考虑用正则表达式,此时先把response返回来的list通过jion来转换成string
body1=response.xpath('//body//text()').extract()
body1=''.join(body1)
body1 = re.sub('\n', '', body1).replace(' ', '').strip()
body1=re.sub('\s','',body1)
在pycharm中运行发现获取的内容是空白。
尝试打印长度,发现不为0,所以就需要想办法把换行符去掉,把空格去掉。
re.sub('\n', '', body1)
利用re模块的sub()替换掉换行,sub(pattern, repl, string, count=0, flags=0)
其中pattern是正则表达式,模式字符串。
repl
是要替换成的内容string
是要进行编辑的string内容
这三个参数为必选,还有下面两个默认参数。
count=0
:模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。flags=0
标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
\n
:会被处理为对应的换行符;\r
:会被处理为回车符;
常用的去掉空格的方法
去掉左边空格
str1 = " String's type is str "
print(str1,end='')
print('end')
print(str1.lstrip(),end='')
print('end')
# String's type is str end
#String's type is str end
去掉右边空格
str1 = " String's type is str "
print(str1,end='')
print('end')
print(str1.rstrip(),end='')
print('end')
# String's type is str end
# String's type is strend
去掉两头的空格
str1 = " String's type is str "
print(str1,end='')
print('end')
print(str1.strip(),end='')
print('end')
# String's type is str end
#String's type is strend
用字符串的方法去掉所有空格,制表符或者其他空白
str1 = " String's type is str "
print(str1,end='')
print('end')
print(str1.replace(' ', ''),end='')
print('end')
# String's type is str end
#String'stypeisstrend
用正则的方法去掉所有空格,制表符或者其他空白
import re
str1 = " String's type is str "
print(str1,end='')
print('end')
str1=re.sub(r"\s+", "", str1)
print(str1.replace(' ', ''),end='')
print('end')
其中正则表达式\s+表示匹配空的内容1到无限次。
表示匹配前一个字符1到无限次
来源:https://blog.csdn.net/AshleyXM/article/details/106246081


猜你喜欢
- 前言分享一个Vue前端导出Excel文件的方法。记录学习!功能需求:将表格的全部数据导出Excel格式的文件前端:Vue3+Element-
- SQL语言查询基础:连接查询 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系
- 背景描述:Pycharm作为python专业开发工具,要比轻量级的vscode更加稳定,适合个人、团队的项目开发。同时pycharm来创建虚
- Python练习内容:SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Pyth
- 更新:2017.07.17补充滚动条、win批处理拉起py2017.08.13新增自定义图标一、背景:1.工作中自己及同事在查数据库、测试接
- mysql installer community 8.0.16.0安装图文教程,,供大家参考,具体内容如下一、下载mysql-instal
- 我就废话不多说了,大家还是直接看代码吧~func GetGID() uint64 { b := make([]by
- HDF5 简介HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF
- python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without an
- 一、前言当我们必须处理可能有多个列和行的大型DataFrames时,能够以可读格式显示数据是很重要的。这在调试代码时非常有用。默认情况下,当
- Flask是一个轻量级的Web框架。虽然是轻量级的,但是对于组件一个大型的、模块化应用也是能够实现的,“蓝图”就是这样一种实现。对于模块化应
- 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:黑白之道刮刮
- PDOStatement::errorInfoPDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息
- 内涵:正则匹配,正则替换,页面抓取,图片保存 。实用的第一次 Python 代码 参考#!/usr/bin/env pythonimport
- 1、异常出现的场景.:在使用Hibernate做为项目持久层的情况下,需要对某一张表进行一个扩展,扩展操作便是在该表上创建一个触发器。将表中
- 如下所示:'''@author: Jacobpc'''import osimport sys
- Python实现GIF动图的提取及合成在开始之前,先来一个动图开头(预览)图片转GIF动图1、准备工作在开始合并前,先明确要转换哪些图片,以
- 一、前期准备1.1 案例分析适用场景:单例布局1.2 方 * V视图 HTML+CSS+调试C js实现控制流程D数据 优化扩展二、代码结构&
- 目录开始安装使用一、安装 Python二、安装 moviepy三、安装 ffmpeg四、开始写拼接脚本五、等待运行完毕, 完结撒花 🎉六、补
- np.arange 步长0.1问题两个小测试:1)count输出什么?import numpy as np y_m