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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
使用python 获取进程pid号的方法
Mar 10 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python 实现随机数详解及实例代码
Apr 15 Python
Python实现的简单计算器功能详解
Aug 25 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
python requests库的使用
Jan 06 Python
python 制作网站筛选工具(附源码)
Jan 21 Python
python实战之90行代码写个猜数字游戏
Apr 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
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
理解JS事件循环
2016/01/07 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python生成excel的实例代码
2017/11/08 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
应届大专毕业生自我鉴定
2014/04/08 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
活动主持人开场白
2015/05/28 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android