首页 >后端开发 >Python教程 >Python中用正则表达式实现文本替换的实例

Python中用正则表达式实现文本替换的实例

Y2J
Y2J原创
2017-04-21 15:06:141621浏览

这篇文章主要介绍了Python使用正则表达式实现文本替换的方法,结合实例形式分析了Python使用正则表达式实现文本替换的具体操作步骤与相关使用注意事项,需要的朋友可以参考下

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

举两个应用场景

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

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

直接看代码吧:


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

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

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

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

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

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

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

以上是Python中用正则表达式实现文本替换的实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn