Python 正则表达式 sub

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 函数的第一个参数指定的格式,所以,逗号和感叹号还是会保留

阅读更多
换一批

没有更多推荐了,返回首页