本文实例讲述了Python实现查找匹配项作处理后再替换回去的方法。分享给大家供大家参考,具体如下:
这里实现Python在对找到的匹配项进行适当处理后,再替换掉原来那个匹配的项。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/usr/bin/python # coding=GBK import re # 对m作适当处理后返回结果 def fun(m): print ( "in: %s" % m.group( 0 )) ret = m.group( 0 ).upper()[:: - 1 ] return ret src = "what [can] I do for can you[can] come on" pat = "(?< = )(can)(? = )" #print(re.search(pat, src).group(1)) #result = re.sub(pat,lambda m:m.group(1).upper()[::-1], src) # 使用lambda result1 = re.sub(pat, lambda m:m.group( 0 ).upper()[:: - 1 ], src) print ( "result1: %s\n" % result1) # 在re.sub中使用函数 result2 = re.sub(pat, fun, src) print ( "result2: %s" % result2) |
运行输出:
1
2
3
4
5
6
|
[zcm@python #112]$./del.py result1: what [NAC] I do for can you[NAC] come on in : can in : can result2: what [NAC] I do for can you[NAC] come on [zcm@python #113]$ |
看到了吗,所有匹配"[can]"的项都被“转换成大写并逆顺”了。
希望本文所述对大家Python程序设计有所帮助。