本文实例讲述了Python实现查找匹配项作处理后再替换回去的方法。分享给大家供大家参考,具体如下:
这里实现Python在对找到的匹配项进行适当处理后,再替换掉原来那个匹配的项。
#!/usr/bin/python# coding=GBKimport re# 对m作适当处理后返回结果def fun(m): print("in: %s" %m.group(0)) ret = m.group(0).upper()[::-1] return retsrc = "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)# 使用lambdaresult1 = 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)
运行输出:
[zcm@python #112]$./del.pyresult1: what [NAC] I do for can you[NAC] come onin: canin: canresult2: what [NAC] I do for can you[NAC] come on[zcm@python #113]$
看到了吗,所有匹配"[can]"的项都被“转换成大写并逆顺”了。
希望本文所述对大家Python程序设计有所帮助。
新闻热点
疑难解答