正则表达式---零宽断言(五--负向零宽断言)

本文深入探讨了正则表达式中的负向零宽断言,包括零宽度负预测先行断言和零宽度负回顾后发断言。通过代码示例和分析解释了如何使用这些断言以及它们在匹配过程中的作用。最终讨论了一个具体的问题,明确了匹配结果的判断逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

负向零宽断言:

(?!exp)     零宽度负预测先行断言;  匹配后面不是exp的位置

(?<!exp)   零宽度负回顾后发断言;  匹配前面不是exp的位置

代码示例1:

exp:abZW863ab88;       正则:ab(?![A-Z])

图示:

思考:该正则规则会匹配到该exp哪些结果?是ab还是ab88亦或是ab ab88呢?

分析:首先正则中a来获取控制权,接着开始从第0号位置去匹配。exp中的a是0-1位置,恰好匹配成功,控制权转到正则的b中。此时b会去从第一号位置匹配。exp中的b是1-2位置,恰好匹配成功,接着将控制权转给正则的(?![A-Z])中。此时(?![A-Z])会去匹配第二位置,但是它要求第二位置后面不能是A-Z,那么匹配位置失败,接着将控制权重新发送回正则的a中。...接着到了第7号位置,正则a匹配exp的a成功...最后到了第九号位置,控制权此时是(?![A-Z])。(?![A-Z])开始从第九号位置去匹配,发现8不是A-Z,那么匹配成功,注意:断言匹配的内容不会具有真实性,换句话说断言匹配到这里的8后,发现匹配成功了,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值