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调用C/C++动态链接库的方法详解
Jul 22 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
Python金融数据可视化汇总
Nov 17 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
python中numpy数组与list相互转换实例方法
Jan 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调用Linux命令权限不足问题解决方法
2015/02/07 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
15款jQuery分布引导插件分享
2015/02/04 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
详解Python多线程下的list
2020/07/03 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
师恩难忘教学反思
2014/04/27 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
入党培养人考察意见
2015/06/08 职场文书
职位证明模板
2015/06/23 职场文书