Python教程

python正则表达式——字符串替换

本文主要是介绍python正则表达式——字符串替换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

匹配模式替换
字符串对象的 replace 方法只适应于简单的替换。
比如,我们需要在下面这段文本中所有的链接中找到所以 /avxxxxxx/ 这种以 /av 开头,后面接一串数字, 这种模式的字符串。
然后,这些字符串全部替换为 /cn345677/ 。

names = '''

下面是这学期要学习的课程:

<a href='https://www.bilibili.com/video/av66771949/?p=1' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是牛顿第2运动定律

<a href='https://www.bilibili.com/video/av46349552/?p=125' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是毕达哥拉斯公式

<a href='https://www.bilibili.com/video/av90571967/?p=33' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是切割磁力线
'''

被替换的内容不是固定的,所以没法用字符串的replace方法。
这时,可以使用正则表达式里面的 sub 方法。

import re
names = '''
下面是这学期要学习的课程:
<a href='https://www.bilibili.com/video/av66771949/?p=1' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是牛顿第2运动定律
<a href='https://www.bilibili.com/video/av46349552/?p=125' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是毕达哥拉斯公式
<a href='https://www.bilibili.com/video/av90571967/?p=33' target='_blank'>点击这里,边看视频讲解,边学习以下内容</a>
这节讲的是切割磁力线
'''
newStr = re.sub(r'/av\d+?/', '/cn345677/' , names)
print(newStr)

sub 方法就是也是替换字符串, 但是被替换的内容用正则表达式来表示符合特征的所有字符串。
比如,这里就是第一个参数 /av\d+?/ 这个正则表达式,表示以 /av 开头,后面是一串数字,再以 / 结尾的 这种特征的字符串 ,是需要被替换的。
第二个参数,这里 是 ‘/cn345677/’ 这个字符串,表示用什么来替换。
第三个参数是 源字符串。

这篇关于python正则表达式——字符串替换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!