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中logging模块的用法实例
Sep 29 Python
在Django中创建第一个静态视图
Jul 15 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
transform python环境快速配置方法
Sep 27 Python
Python中如何导入类示例详解
Apr 17 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
Python实现信息管理系统
Jun 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
如何去掉文章里的 html 语法
2006/10/09 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
JS的反射问题
2010/04/07 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
使用PYTHON接收多播数据的代码
2012/03/01 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
django Admin文档生成器使用详解
2019/07/22 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
早餐连锁店计划书
2014/01/08 职场文书
教学大赛获奖感言
2014/01/15 职场文书
财政专业求职信范文
2014/02/19 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
敬老模范事迹
2014/05/21 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS