本文实例讲述了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程序设计有所帮助。