1、打开python开发工具IDLE,新建‘zzsub.py’文件,并写代码如下:import repattern = re.compile(r'\w+ \w+')str = 'hello 123,hello 4565'm = pattern.findall(str)print (m)复习findall函数,因为sub是替换所有,findall是查找所有,只有查找到了,才好替换,这里\w匹配字母数字下划线
2、F5运行代码,打印出查找的所有内容
3、修改代码如下,替换查找到的所有内容import repattern = re.compile(r'\w+ \w+')str = 'hello 123,hello 4565'm = pattern.findall(str)print (m)n = pattern.sub('hello world' ,str)print (n)
4、F5运行代码,打印内容如下图,成功替换
5、注意如果将第一步的代码改为如下分组方式,代码如下:import repattern = re.compile(r'(\w+) (\w+)')str = 'hello 123,hello 4565'm = pattern.findall(str)print (m)n = pattern.sub('hello world' ,str)print (n)
6、F5运行代码,结果如下图,这是说明,不论匹配方式,只要匹配了,就替换
7、根据上一步的分组使用\1 \2来替换一下,修改代码如下:import repattern = re.compile(r'(\w+) (\w+)')str = 'hello 123,hello 4565'm = pattern.findall(str)print (m)n = pattern.sub(r'\2 \1' ,str)print (n)
8、F5运行代码,打印结果如下图,其实很好理解,sub的第一个参数是替换后的内容,\2是元组的第二个值,\1是元组的第一个值