Python常用字符串替换函数strip、replace及sub用法示例


Posted in Python onMay 21, 2018

本文实例讲述了Python常用字符串替换函数strip、replace及sub用法。分享给大家供大家参考,具体如下:

今天在做一道今年秋季招聘题目的时候遇上了一个替换的问题,题目看起来好长好复杂啊,真的,一时间,我看了好几遍也没看懂,其实实质很简单,就是需要把给定的一个字符串里面的指定字符替换成一些指定的内容就行了,这样首选当然是字典了,没有之一,题目很简单就不写出来了,在这里花了一点时间专门总结了一下字符串的替换的几个常用的函数,希望也能帮到有需要的人,自己也是当做一个学习的记录,好了,在这里就不多说什么了,在代码中该说的都说了,直接看程序:

#!/usr/bin/env python
# coding:utf-8
import re
'''''
功能:对常见的几种字符串处理函数进行测试使用学习
Author:沂水寒城
'''
def str_test():
  str_list=['We are family!!!', '00 11 22 33 44 55 66 77 88 99',
       'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
  str_dict={
    '!!!':'$$$',
    ' ':'@',
    'T':'t',
    'L':'&'
  }
  #使用replace
  '''''
  基本用法:对象.replace(rgExp,replaceText,max)
  rgExp和replaceText是必须要有的,max是可选的参数
  '''
  str_list1=str_list
  res_list=[]
  for one_str in str_list1:
    for key in str_dict:
      one_str = one_str.replace(key, str_dict[key])
    res_list.append(one_str)
  print '**************replace替换结果为:*********************'
  print str_list1
  print res_list
  #使用re
  '''''
  re.sub()有5个参数,三个必选参数pattern,repl,string;两个可选参数count,flags
  re.sub(pattern,repl,string,count,flags)
  pattern:表示正则表达式中的模式字符串;
  repl:被替换的字符串,或者是一个方法(既可以是字符串,也可以是函数);
  当repl为字符串的时候,也就是需要 将string中与pattern匹配的字符串都替换成repl
  当repl为方法的时候,就必须是一个带有一个参数,且参数为MatchObject类型的方法,该方法需要返回一个字符串。
  string:要被处理的,要被替换的字符串;
  count:指的是最大的可以被替换的匹配到的字符串的个数,默认为0,就是所有匹配到的字符串。
  flgas:标志位
  '''
  str_list2=str_list
  res_list=[]
  pattern_rule=re.compile(r'!!!')
  for one_str in str_list2:
    one_str = re.sub(pattern_rule, '$$$', one_str)
    res_list.append(one_str)
  print '**************sub替换结果为:*********************'
  print str_list2
  print res_list
  #使用strip()
  '''''
  个人使用strip()很久了,感觉这个函数在一些事比如字符串末尾换行符去除等方面出奇的好用,
  它并不算是一个纯正意义上跟上面两个函数类似的字符串处理的函数,但是用于字符串尾部删除等方面的时候
  效果还是很不错的
  '''
  str_list3=str_list
  res_list=[]
  for one_str in str_list3:
    one_str=one_str.strip('!!!')
    res_list.append(one_str)
  print '**************strip替换结果为:*********************'
  print str_list3
  print res_list
str_test()

结果如些下:

**************replace替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We@are@family$$$', '00@11@22@33@44@55@66@77@88@99', 'trouble@is@a@friend$$$trouble@is@a@friend$$$', '&ove&ove&ove']
**************sub替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We are family$$$', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend$$$Trouble is a friend$$$', 'LoveLoveLove']
**************strip替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We are family', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend', 'LoveLoveLove']

这些东西应该算得上是很顺手的小工具了,特别是在一些应用中能起到四两拨千斤的作用,也许是夸张了哈,但是就是很喜欢这几个小工具,所以就写出来分享一下,不足之处还望多多指教,大家共同学习共同进步!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现多线程采集的2个代码例子
Jul 07 Python
python提示No module named images的解决方法
Sep 29 Python
python中常用检测字符串相关函数汇总
Apr 15 Python
Python使用smtplib模块发送电子邮件的流程详解
Jun 27 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
利用python如何在前程无忧高效投递简历
May 07 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
python中threading开启关闭线程操作
May 02 Python
python中pow函数用法及功能说明
Dec 04 Python
Python-split()函数实例用法讲解
Dec 18 Python
Python下使用Scrapy爬取网页内容的实例
May 21 #Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 #Python
对python抓取需要登录网站数据的方法详解
May 21 #Python
深入浅析python 中的匿名函数
May 21 #Python
python3 selenium 切换窗口的几种方法小结
May 21 #Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 #Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 #Python
You might like
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
javascript动态加载三
2012/08/22 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Python利用IPython提高开发效率
2016/08/10 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python hough变换检测直线的实现方法
2019/07/12 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
python requests库的使用
2021/01/06 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
大学生物业管理求职信
2013/10/24 职场文书
厂长岗位职责
2014/02/19 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
优秀班主任材料
2014/12/16 职场文书
经费申请报告
2015/05/15 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
详解Python描述符的工作原理
2021/06/11 Python