零宽断言 python_从零宽断言说起到用python匹配html标签内容

提示:本文主要是讲解零宽断言,所以阅读本文需要有一定的正则表达式基础。

概念

我们知道元字符“\b”、“^”、“$”匹配的是一个位置,而且这个位置需要满足一定的条件(比如“\b”表示单词的边界),我们把这个条件称为断言或零宽度断言。这里有很重要的两个信息:一是断言实际上是某种条件;二是它不占字符宽度,只是一个位置,并不匹配任何字符。

零宽断言一共分为正向和反向两类,每类又分为预测先行和回顾后发两种:

§零宽度正预测先行断言,简称正向先行断言,语法是(?=exp),它断言此位置的后面能匹配表达式exp。

§零宽度正回顾后发断言,简称正向后发断言,语法是(?<=exp),它断言此位置的前面能匹配表达式exp。

§零宽度负预测先行断言,简称反向先行断言,语法是(?!exp),它断言此位置的后面不能匹配表达式exp。

§零宽度负回顾后发断言,简称反向后发断言,语法是(?

好了,说到这里你一定感觉云里雾里,讲道理我刚看到这官方定义也是一脸懵逼,下面就结合例子来帮助理解一下什么是断言。做过python爬虫的朋友一定做过提取html标签内容的工作吧,比如有

hello world
,我们要把div标签里面的‘hello world’提取出来,用断言就是如下这样:

正则表达式:(?<=

).*(?=
)

匹配字符串:

hello world

匹配结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值