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中的is和id用法分析
Jan 26 Python
python去除所有html标签的方法
May 05 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
Python中单例模式总结
Feb 20 Python
Python从零开始创建区块链
Mar 06 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python用for循环求和的方法总结
Jul 08 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
Python实现把类当做字典来访问
Dec 16 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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带节点操作的无限分类实现方法详解
2016/11/09 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
js打造数组转json函数
2015/01/14 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python有证书的加密解密实现方法
2014/11/19 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
python学生信息管理系统实现代码
2019/12/17 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
美德少年事迹材料500字
2014/08/19 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
民事纠纷协议书
2016/03/23 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
php 原生分页
2021/04/01 PHP