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的框架中一些会话程序的管理
Apr 20 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python制作填词游戏步骤详解
May 05 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
详解Python3 pickle模块用法
Sep 16 Python
django实现用户注册实例讲解
Oct 30 Python
Python模块 _winreg操作注册表
Feb 05 Python
Python基于内置函数type创建新类型
Oct 22 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 无限极分类
2008/03/27 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
屏蔽相应键盘按钮操作
2014/03/10 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
js实现简单计算器
2015/11/22 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
python学生管理系统
2019/01/30 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python 随机按键模拟2小时
2020/12/30 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
工商治理实习生的自我评价
2014/01/15 职场文书
高中体育教学反思
2014/01/24 职场文书
建议书范文
2015/02/05 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android