您可以将函数传递给
re.sub()。在该函数中,您可以根据捕获的组返回所需的值。一个简单的代码说明:
>>> def fun(m):... if m:... if m.group(1):... return 'x'... else:... return 'y'>>>print re.sub(r"([A-Z]+)|([a-z]+)", fun , "ab")
该函数
fun()检查匹配是否成功,并根据捕获的组返回替换字符串。如果
[A-Z]+匹配,
x则为替换字符串,否则
[a-z]+为匹配字符串,并且
y为替换字符串。
有关更多信息:doc



