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 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
python中base64加密解密方法实例分析
May 16 Python
tornado 多进程模式解析
Jan 15 Python
python os用法总结
Jun 08 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python3 log10()函数简单用法
Feb 19 Python
通过实例解析Python RPC实现原理及方法
Jul 07 Python
python使用建议与技巧分享(一)
Aug 17 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 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变量作用域以及地址引用问题
2013/12/27 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
python之随机数函数的实现示例
2020/12/30 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
自荐信的禁忌和要点
2013/10/15 职场文书
音乐专业应届生教师求职信
2013/11/04 职场文书
最新创业融资计划书
2014/01/19 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
论语读书笔记
2015/06/26 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
Python Pandas 删除列操作
2022/03/16 Python