python3正则表达式之sub替换函数

2025-10-24 08:47:04

1、打开python开发工具IDLE,新建‘zzsub.py’文件,并写代码如下:

import re

 

pattern = re.compile(r'\w+ \w+')

 

str = 'hello 123,hello 4565'

 

m = pattern.findall(str)

 

print (m)

复习findall函数,因为sub是替换所有,findall是查找所有,只有查找到了,才好替换,这里\w匹配字母数字下划线

python3正则表达式之sub替换函数

2、F5运行代码,打印出查找的所有内容

python3正则表达式之sub替换函数

3、修改代码如下,替换查找到的所有内容

import re

 

pattern = re.compile(r'\w+ \w+')

 

str = 'hello 123,hello 4565'

 

m = pattern.findall(str)

 

print (m)

 

n = pattern.sub('hello world' ,str)

 

print (n)

 

python3正则表达式之sub替换函数

4、F5运行代码,打印内容如下图,成功替换

python3正则表达式之sub替换函数

5、注意如果将第一步的代码改为如下分组方式,代码如下:

import re

 

pattern = re.compile(r'(\w+) (\w+)')

 

str = 'hello 123,hello 4565'

 

m = pattern.findall(str)

 

print (m)

 

n = pattern.sub('hello world' ,str)

 

print (n)

 

python3正则表达式之sub替换函数

6、F5运行代码,结果如下图,这是说明,不论匹配方式,只要匹配了,就替换

python3正则表达式之sub替换函数

7、根据上一步的分组使用\1 \2来替换一下,修改代码如下:

import re

 

pattern = 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)

 

python3正则表达式之sub替换函数

8、F5运行代码,打印结果如下图,其实很好理解,sub的第一个参数是替换后的内容,\2是元组的第二个值,\1是元组的第一个值

python3正则表达式之sub替换函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢