sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]):
使用repl替换string中每一个匹配的子串后返回替换后的字符串。
当repl是一个字符串时,可以使用\id或\g<id>、\g<name>引用分组,但不能使用编号0。
当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。
count用于指定最多替换次数,不指定时全部替换。
p = re.compile(r'(\w+) (\w+)')
s = 'i say, hello world!'
print p.sub(r'\2 \1', s)
# say i,world hello!
def func(m):
return m.group(1).title() + ' ' + m.group(2).title()
print p.sub(func, s)
# I Say,Hello World
这里的group是相对于每一个匹配结果而言的,即\1 表示 i 和 hello, 而\2则表示 say 和 world
sub函数的作用是将匹配的结果替换为 sub 函数的第一个参数指定的格式,所以,逗号和感叹号还是会保留