首页 python正文

python re.M使用详解

启明SEO python 2022-03-19 12:25:43 1780 0 python正则表达式re

re.M 多行匹配,影响 ^ 和 $

看如下代码:

s = '12 34\n56 78\n90'
ss=re.findall(r'12(\d)0', s,re.M)

打印ss,结果是空。

再看看我们这样写

ss=re.findall(r'\d', s,re.M)

打印结果是['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

ss=re.findall(r'\d+', s,re.M)

打印结果是:['12', '34', '56', '78', '90']

ss=re.findall(r'^\d+', s,re.M)

打印结果是:['12', '56', '90']

ss=re.findall(r'^\d+$', s,re.M)

打印结果是:['90']

ss=re.findall(r'\d+$', s,re.M)

打印结果是:['34', '78', '90']

总结:re.M换行后,需要重新匹配规则,如果在当前行没有规则匹配内容,就会返回空。所以,当我们在使用bs4采集网页内容的时候,想使用,re.sub('','',str,re.M)来进行多行匹配替换,是不可行的。如要将这些字符替换成空

<div class="reed-xiongzhanghao">
<script>cambrian.render('body')</script>
</div>

使用re.sub('<div(.*?)</div>','',str,re.M)是不会成功替换的。这个时候我们我们如果想要得到效果就得先对str进行将换行符替换为空的步骤:

re.sub('\n','',str)

然后再使用上面的规则进行替换,就能够达到预期效果

评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

网站始终只收录一个首页,为什么

网站始终只收录一个首页,为什么

新做了两个网站,但是一直只是收录一个首页,快......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......