Python使用正则表达式实现文本替换的方法


Posted in Python onApril 18, 2017

本文实例讲述了Python使用正则表达式实现文本替换的方法。分享给大家供大家参考,具体如下:

2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一个简单的运行环境

举两个应用场景

① 如果不是在某个文件夹里面则将文件夹名称插入前面

② 所有的文件名名称加上一个前缀

直接看代码吧:

# encoding: UTF-8
import re
# 将正则表达式编译成Pattern对象
p = re.compile(r'(?P<folder>(\w+/)*)(?P<filename>\w+\.png)')
# 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None
#match = pattern.match('<key>xxx/duobaojiemian_L/yangpizi.png</key>')
the_str = """<key>XXXX/duobaojiemian2222_L/duobaojiemian_L/yangpizi.png</key>
 <key>yangpizi2.png</key>
 <key>yangpizi3.png</key> """
for m in p.finditer(the_str):
 # 使用Match获得分组信息
 print m.groupdict()
print '-------------------------------'
#f = lambda m: m.group().find('XXXX/') == -1 and 'XXXX/'+m.group() or m.group()
def f(m):
 s = m.group()
 return s.find('XXXX/') == -1 and 'XXXX/'+s or s
def f2(m2):
 d = m2.groupdict()
 return d['folder']+'the_'+d['filename']
print p.sub(f2, the_str)

关于正则表达式有几个需要交代的

①. python的正则表达式如果捕获需要分组则使用这个语法(?P<命名>匹配的正则表达式)

②. re.compile用于编译正则表达式并返回对象

③. p.finditer返回所有匹配的迭代器

④. p.sub将匹配项传入回调函数,并且用返回值替换文本

⑤. m.groupdict,可以使用则的分组命名取相应的值

Python 相关文章推荐
Python类定义和类继承详解
May 08 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
python多进程控制学习小结
Oct 31 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
Python实现图片添加文字
Nov 26 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
python 装饰器的使用示例
Oct 10 Python
python 获取字典键值对的实现
Nov 12 Python
Restful_framework视图组件代码实例解析
Nov 17 Python
Django中ORM的基本使用教程
Dec 22 Python
Python外星人入侵游戏编程完整版
Mar 30 #Python
Python随机数用法实例详解【基于random模块】
Apr 18 #Python
django使用图片延时加载引起后台404错误
Apr 18 #Python
使用Python3制作TCP端口扫描器
Apr 17 #Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 #Python
Python的时间模块datetime详解
Apr 17 #Python
Python中标准模块importlib详解
Apr 16 #Python
You might like
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
smarty内置函数section的用法
2015/01/22 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
PHP5.3新特性小结
2016/02/14 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python Paramiko使用示例
2020/09/21 Python
应届大学生自荐信格式
2013/09/21 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
妇联主席先进事迹
2014/05/18 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
物业保安辞职信
2015/05/12 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
秋收起义观后感
2015/06/11 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
JavaScript函数柯里化
2021/11/07 Javascript