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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
Python中的__SLOTS__属性使用示例
Feb 18 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
python requests指定出口ip的例子
Jul 25 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
python 实现体质指数BMI计算
May 26 Python
Python基本的内置数据类型及使用方法
Apr 13 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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
python学习之编写查询ip程序
2016/02/27 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
机关门卫制度
2014/02/01 职场文书
担保书怎么写
2014/04/01 职场文书
创先争优一句话承诺
2014/05/29 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
2014年电厂工作总结
2014/12/04 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电
Python读取和写入Excel数据
2022/04/20 Python