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 修改文件指定行的方法
May 15 Python
编程语言Python的发展史
Sep 26 Python
python GUI实例学习
Nov 21 Python
Python设计模式之观察者模式简单示例
Jan 10 Python
python机器学习之神经网络实现
Oct 13 Python
python2和python3在处理字符串上的区别详解
May 29 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
python快速排序的实现及运行时间比较
Nov 22 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
python 爬虫如何实现百度翻译
Nov 16 Python
Python扫描端口的实现
Jan 25 Python
Python Django模型详解
Oct 05 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
linux iconv方法的使用
2011/10/01 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python中对象的引用与复制代码示例
2017/12/04 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python简单实现9宫格图片实例
2020/09/03 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
装修设计师求职信
2014/02/26 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
培训班通知
2015/04/25 职场文书
2015国庆节宣传语
2015/07/14 职场文书