博客
关于我
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
阅读量:363 次
发布时间:2019-03-04

本文共 1300 字,大约阅读时间需要 4 分钟。

本文  已收录,有Java程序员进阶技术知识地图以及我的系列文章,欢迎大家Star。

去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。

解决方案

strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如:

>>> # Whitespace stripping>>> s = ' hello world \n'>>> s.strip()'hello world'>>> s.lstrip()'hello world \n'>>> s.rstrip()' hello world'>>>>>> # Character stripping>>> t = '-----hello====='>>> t.lstrip('-')'hello====='>>> t.strip('-=')'hello'>>>

讨论

这些 strip() 方法在读取和清理数据以备后续处理的时候是经常会被用到的。 比如,你可以用它们来去掉空格,引号和完成其他任务。

但是需要注意的是去除操作不会对字符串的中间的文本产生任何影响。比如:

>>> s = ' hello     world \n'>>> s = s.strip()>>> s'hello     world'>>>

如果你想处理中间的空格,那么你需要求助其他技术。比如使用 replace() 方法或者是用正则表达式替换。示例如下:

>>> s.replace(' ', '')'helloworld'>>> import re>>> re.sub('\s+', ' ', s)'hello world'>>>

通常情况下你想将字符串 strip 操作和其他迭代操作相结合,比如从文件中读取多行数据。 如果是这样的话,那么生成器表达式就可以大显身手了。比如:

with open(filename) as f:    lines = (line.strip() for line in f)    for line in lines:        print(line)

在这里,表达式 lines = (line.strip() for line in f) 执行数据转换操作。 这种方式非常高效,因为它不需要预先读取所有数据放到一个临时的列表中去。 它仅仅只是创建一个生成器,并且每次返回行之前会先执行strip操作。

对于更高阶的strip,你可能需要使用 translate() 方法。请参阅下一节了解更多关于字符串清理的内容。

 

-- END --

日常求赞:你好技术人,先赞后看养成习惯,你的赞是我前进道路上的动力,对我非常重要。

加油技术人!

简介: 博主从华中科技大学硕士毕业,是一个对技术有追求,对生活有激情的程序员。几年间浪迹于多个一线互联网大厂,具有多年开发实战经验。

微信搜索公众号【爱笑的架构师】,我有技术和故事,等你来。

文章持续更新,在  中可以看到我归档的系列文章,有面试经验和技术干货,欢迎Star。

转载地址:http://imbr.baihongyu.com/

你可能感兴趣的文章
mysql权限
查看>>
mysql条件查询
查看>>
MySQL条件查询
查看>>
MySQL架构与SQL的执行流程_1
查看>>
MySQL架构与SQL的执行流程_2
查看>>
MySQL架构介绍
查看>>
MySQL架构优化
查看>>
mysql架构简介、及linux版的安装
查看>>
MySQL查看数据库相关信息
查看>>
MySQL查看表结构和表中数据
查看>>
MySQL查询优化:LIMIT 1避免全表扫描
查看>>
MySQL查询优化之索引
查看>>
mysql查询储存过程,函数,触发过程
查看>>
mysql查询总成绩的前3名学生信息
查看>>
mysql查询慢排查
查看>>
MySQL查询报错ERROR:No query specified
查看>>
mysql查询数据库储存数据的占用容量大小
查看>>
MySQL查询数据库所有表名及其注释
查看>>
MySQL查询数据表中数据记录(包括多表查询)
查看>>
MySQL查询结果排序
查看>>