php负向零宽断言,10-零宽断言和负向零宽断言

查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言

说白了,我们希望在我们匹配的内容前后的某个“位置”,然后这个条件要符合一定的条件(断言)

断言知识作为位置,本身不属于我们匹配的内容的一部。

(?=exp)也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。注意本身匹配的内容是不包含exp的

比如 \b[a-z]+(?=ing\b) 这里的意思是匹配一个单词 这个单词是以ing结尾的,注意它是不包括ing部分的。ing只是作为一个“位置”,类似于^ $这一类。

I'm talking while you're dancing.

reading a book

(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp

比如

(?<=pre)[a-z]+\b会匹配以pre开头的单词的后半部分(除了pre以外的部分)

“pre" 表示“….前的,预先”

preschool 学龄前的(pre+school学校→上学前的)

prehistory 史前(pre+history历史)

prefix 前缀(pre+fix固定→固定在前面→前缀)

负向零宽断言

顾名思义 就是和上面的零宽断言相反

零宽度负预测先行断言(?!exp),断言此位置的后面不能匹配表达式exp

例如:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;

\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词

同理,我们可以用(?

(?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值