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使用Berkeley DB数据库实例
Sep 26 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
python2.7实现FTP文件下载功能
Apr 15 Python
python保存网页图片到本地的方法
Jul 24 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
Python绘制动态水球图过程详解
Jun 03 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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的PDO事务与自动提交
2019/01/24 PHP
laravel5.6实现数值转换
2019/10/23 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
就业推荐表自我鉴定
2014/03/21 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
六查六看自查报告
2014/10/14 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python
Python实现信息管理系统
2022/06/05 Python
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS