Python 实用技巧之正则表达式查找和替换文本的操作方法
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 实用技巧之正则表达式查找和替换文本的操作方法相关推荐
- visual studio 正则表达式 查找与替换文本
好多时候想要重构一些代码,但是修改起来发现很麻烦,因为简单的文本替换不能满足需求,这时候就要借助ide的力量了. 还好visual studio 2010支持正则表达式查找和替换.如下图所示: doc ...
- python实用技巧(四)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 排序后,最后k个元素,以逆序输出 >>> l = range(1, 6 ...
- python实用技巧(二)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) code 解释 补充 list.reverse() 返回值类型为NoneType l.r ...
- python实用技巧(一)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 已知X是多维数组类型,则: X[:, v],表示的是truncate X中的一些列(对应 ...
- 太牛了,24 个好用到爆的 Python 实用技巧
在Python的学习过程中,很多小伙伴可能会想,我学了这么多,哪些是常用和实用的?怎样增加工作效率? 今天,我就总结了24个好用到爆的Python实用技巧,希望能对小伙伴们有帮助!欢迎收藏学习,喜欢点 ...
- python最新技术开锁工具_精选26个Python实用技巧,想秀技能先Get这份技术列表!...
原标题:精选26个Python实用技巧,想秀技能先Get这份技术列表! 出品 | AI科技大本营 本文整理了 26 个 Python 有用的技巧,将按照首字母从 A~Z 的顺序分享其中一些内容. al ...
- Microsoft Word 教程:如何在 Word 中查找和替换文本?
欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...
- Microsoft Word 教程「2」,如何在 Word 中查找和替换文本?
欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...
- 查找和替换文本和其他 Word 文档中的数据(转)
今天看一段vba代码,目的去除段首空格,替换的时候查找的文字是^w,不知其意,然后搜索去了 参考:http://zhidao.baidu.com/link?url=dPoOamRVLkY-WpD6v5 ...
最新文章
- nginx linux 安装
- mysql8.0 直方图_MySQL创建横向直方图
- python入门需要多久-怎么自学python,大概要多久?
- Uva 10562 看图写树
- BUUCTF firmware
- 160个Crackme030之一元一次方程
- DevExpress的TreeList的常用属性设置以及常用事件
- mysql安装报错 1130_关于Linux编译安装会无法远程登录,报错:1130-host ... is not allowed to connect to this MySql server...
- *[topcoder]JumpFurther
- 《程序员代码面试指南》第二章 链表问题 删除无序链表中值重复的链表
- Java多线程第三节-线程的正确停止
- CentOS更改主机名
- Java 随机生成MAC地址
- PS制作加载GIF图片教程
- 传智播客黑马程序员_新程序员的最佳播客,以及聆听他们的最佳工具
- python 批量下载视频_python实现抖音视频批量下载
- 关于unity中使用solidwork模型材质及动画丢失问题
- 简洁,简单,再简化...
- 如何使用IDM下载电子书
- SpringBoot高级特性
热门文章
- python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...
- 02 | 日志系统:一条 SQL 更新语句是如何执行的
- 组件kdsvrmgr无法正常工作_汽轮机润滑油冷油器六通阀的工作原理及现阶段存在的问题...
- 《软件工程》实验报告——需求获取与分析
- Windows——系统盘隐藏分区功能
- CG CTF WEB AAencode
- Less taolu
- linux下raid磁盘阵列的命名,linux – mdadm – raid设备名称在重新启动时更改
- java代码从编译到加载执行的过程
- 面试再也不怕问到HashMap(二)