1、需求

我们想对字符串中的文本做查找和替换。

2、解决方案

对于简单的文本模式,使用str.replace()即可。

例如:

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!text='mark ,帅哥,18,183 帅,mark'
print(text.replace('18','19'))
print(text)

运行结果:

mark ,帅哥,19,193 帅,markmark ,帅哥,18,183 帅,mark

针对更为复杂的模式,可以使用re模块中的sub()函数。

实例:将日期格式从“11/28/2018”改为“2018-11-28”

import re
text='今天是:11/28/2018'
print(re.sub(r'(\d+)/(\d+)/(\d+)',r'\3-\1-\2',text))
print(text)

结果:

今天是:2018-11-28
今天是:11/28/2018

sub()的第一个参数是要匹配的模式,第二个参数是要替换的模式。类似的“3”这样的反斜线加数字表示模式中捕获组的编号。

如果打算用相同的模式执行重复替换,可以考虑先将模式编译以获得更好的性能。

实例:

import re
text='今天是:11/28/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')
print(datepat.sub(r'\3-\1-\2',text))
print(text)

结果:

今天是:2018-11-28
今天是:11/28/2018

替换回调函数的输入参数是一个匹配对象,由match()和find()返回。用.group()方法来提取匹配中特定的部分。该函数返回替换后的文本。

除了得到替换后的文本外,如果还想知道一共完成了多少次替换,可以使用re.subn()。

示例:

import re
from calendar import month_abbr
text='今天是:11/28/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')def change_date(m):mon_name=month_abbr[int(m.group(1))]return '{} {} {}'.format(m.group(3),mon_name,m.group(2))
print(datepat.sub(change_date,text))
print(text)

结果:

今天是:11/28/2018,昨天是11/27/2018
今天是:2018-11-28,昨天是2018-11-27

3、分析

除了以上展示的sub()调用之外,关于表达式的查找和替换并没有什么更多可说的了,最有技巧性的地方就是指定的正则表达式。。

Python 实用技巧之正则表达式查找和替换文本的操作方法相关推荐

  1. visual studio 正则表达式 查找与替换文本

    好多时候想要重构一些代码,但是修改起来发现很麻烦,因为简单的文本替换不能满足需求,这时候就要借助ide的力量了. 还好visual studio 2010支持正则表达式查找和替换.如下图所示: doc ...

  2. python实用技巧(四)

    Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 排序后,最后k个元素,以逆序输出 >>> l = range(1, 6 ...

  3. python实用技巧(二)

    Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) code 解释 补充 list.reverse() 返回值类型为NoneType l.r ...

  4. python实用技巧(一)

    Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 已知X是多维数组类型,则: X[:, v],表示的是truncate X中的一些列(对应 ...

  5. 太牛了,24 个好用到爆的 Python 实用技巧

    在Python的学习过程中,很多小伙伴可能会想,我学了这么多,哪些是常用和实用的?怎样增加工作效率? 今天,我就总结了24个好用到爆的Python实用技巧,希望能对小伙伴们有帮助!欢迎收藏学习,喜欢点 ...

  6. python最新技术开锁工具_精选26个Python实用技巧,想秀技能先Get这份技术列表!...

    原标题:精选26个Python实用技巧,想秀技能先Get这份技术列表! 出品 | AI科技大本营 本文整理了 26 个 Python 有用的技巧,将按照首字母从 A~Z 的顺序分享其中一些内容. al ...

  7. Microsoft Word 教程:如何在 Word 中查找和替换文本?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...

  8. Microsoft Word 教程「2」,如何在 Word 中查找和替换文本?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...

  9. 查找和替换文本和其他 Word 文档中的数据(转)

    今天看一段vba代码,目的去除段首空格,替换的时候查找的文字是^w,不知其意,然后搜索去了 参考:http://zhidao.baidu.com/link?url=dPoOamRVLkY-WpD6v5 ...

最新文章

  1. nginx linux 安装
  2. mysql8.0 直方图_MySQL创建横向直方图
  3. python入门需要多久-怎么自学python,大概要多久?
  4. Uva 10562 看图写树
  5. BUUCTF firmware
  6. 160个Crackme030之一元一次方程
  7. DevExpress的TreeList的常用属性设置以及常用事件
  8. mysql安装报错 1130_关于Linux编译安装会无法远程登录,报错:1130-host ... is not allowed to connect to this MySql server...
  9. *[topcoder]JumpFurther
  10. 《程序员代码面试指南》第二章 链表问题 删除无序链表中值重复的链表
  11. Java多线程第三节-线程的正确停止
  12. CentOS更改主机名
  13. Java 随机生成MAC地址
  14. PS制作加载GIF图片教程
  15. 传智播客黑马程序员_新程序员的最佳播客,以及聆听他们的最佳工具
  16. python 批量下载视频_python实现抖音视频批量下载
  17. 关于unity中使用solidwork模型材质及动画丢失问题
  18. 简洁,简单,再简化...
  19. 如何使用IDM下载电子书
  20. SpringBoot高级特性

热门文章

  1. python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...
  2. 02 | 日志系统:一条 SQL 更新语句是如何执行的
  3. 组件kdsvrmgr无法正常工作_汽轮机润滑油冷油器六通阀的工作原理及现阶段存在的问题...
  4. 《软件工程》实验报告——需求获取与分析
  5. Windows——系统盘隐藏分区功能
  6. CG CTF WEB AAencode
  7. Less taolu
  8. linux下raid磁盘阵列的命名,linux – mdadm – raid设备名称在重新启动时更改
  9. java代码从编译到加载执行的过程
  10. 面试再也不怕问到HashMap(二)