Python进阶之路 高级编程 正则表达式-用sub和subn搜索与替换

用sub和subn搜索与替换

sub函数与subn函数用于实现搜索和替换功能。这两个函数的功能几乎完全相同,都是将某个字符串中所有匹配正则表达式的部分替换成其他字符串。用来替换的部分可能是一个字符串,也可以是一个函数,该函数返回一个用来替换的字符串。sub函数返回替换后的结果,subn函数返回一个元组,元组的第1个元素是替换后的结果,第2个元素是替换的总数。

替换的字符串可以是普通的字符串,也可以是通过"\N"形式取出替换字符串中的分组信息,其中N是分组编号,从1开始。sub函数和subn函数的详细用法如下。

[例 11.10] 本例演示了sub函数和subn函数的用法,可以通过本例的代码对这两个函数进行对比。

import re

result = re.sub('Bill','Mike','Bill is my son')

print(result)

result = re.subn('Bill','Mike','Bill is my son,I like Bill')

print(result)

print(result[0])

print('替换总数','=',result[1])

result = re.sub('([0-9])([a-z]+)',r'产品编号:(\1-\2)','01-1abc,02-2xyz,03-9hgf')

print(result)


def fun():
    return r'产品编号(\1-\2)'
result = re.subn('([0-9])([a-z]+)',fun(),'01-1abc,02-2xyz,03-9hgf')

print(result)

print(result[0])

print('替换总数:','=',result[1])

输出结果:

Mike is my son
('Mike is my son,I like Mike', 2)
Mike is my son,I like Mike
替换总数 = 2
01-产品编号:(1-abc),02-产品编号:(2-xyz),03-产品编号:(9-hgf)
('01-产品编号(1-abc),02-产品编号(2-xyz),03-产品编号(9-hgf)', 3)
01-产品编号(1-abc),02-产品编号(2-xyz),03-产品编号(9-hgf)
替换总数: = 3

你可能感兴趣的:(Python,Python进阶之路)