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里隐藏的“禅”
Jun 16 Python
Python函数返回值实例分析
Jun 08 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
详解python中sort排序使用
Mar 23 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
pytorch实现MNIST手写体识别
Feb 14 Python
tensorflow模型转ncnn的操作方式
May 25 Python
virtualenv隔离Python环境的问题解析
Jun 21 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
Zend studio文件注释模板设置方法
2013/09/29 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
Django学习笔记之Class-Based-View
2017/02/15 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python 字典套字典或列表的示例
2019/12/16 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
军训自我鉴定200字
2014/02/13 职场文书
职业规划实施方案
2014/06/10 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
婚礼父母致辞
2015/07/28 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
python简单验证码识别的实现过程
2021/06/20 Python