Python正则的匹配与替换

import re

查找时的注意事项,要查找的内容左右两边打出来,用真正的字符,不要用.*?,离查找内容远一点,再用.*?
a = '/aksj<a>哈哈哈<a><p>拉阿鲁<p>\.askjp'
b = re.findall('<a>(.*?)<a><p>(.*?)<p>',a)
print(b)

结果为:

[('哈哈哈', '拉阿鲁')]

匹配的结果为括号中的内容,其他的不会呈现(.*?)表示所有的内容

在应用到html中匹配的时候,由于涉及到换行符,所以常要用修饰符re.S,匹配换行符。

re.findall("",response.text,re.S)


但是注意,再写含换行符的正则时,一定要让.*?包含换行符,然后再加上re.S才会有效果

想要获取主题作者的名字,应该按以下编写正则 

author = re.findall('<span class="tb_icon_author.*?title="主题作者:(.*?)".*?quot',response.text,re.S)

以下为结果


 

c = '"as"/\aksjlaacontent="我是你爸爸",assdad/'
d = re.findall('.*?content=(.*?),assdad',c)
print(d)

结果为:

['"我是你爸爸"']

不想打字符,可以用.*?替代

g = re.sub('[/<>]','我好快乐',c)
print(g)

结果为:

"as"我好快乐 ksjlaacontent="我是你爸爸",assdad我好快乐

把c中/尖括号替换为我好快乐,这里的中括号不能省

不然结果为:

"as"/ ksjlaacontent="我是你爸爸",assdad/

它识别不出来

h = re.sub('[a-z]','啦',c)
print(h)

结果为:

"啦啦"/ 啦啦啦啦啦啦啦啦啦啦啦啦啦="我是你爸爸",啦啦啦啦啦啦/

这里也必须要中括号,把所有的字母替换为啦

以后写还是加上中括号,还在前面加个r

m = 'h\njkshj'
k = re.sub('[\n]','',m)
print(k)

结果为:

hjkshj

这里要不要中括号都可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习各种软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值