正则表达式——环视(零宽断言)

本文介绍了正则表达式中的环视或零宽断言,包括否定逆序环视(?<!)、肯定逆序环视(?<=)、否定顺序环视(?!)和肯定顺序环视(?=)的概念及使用场景。通过示例展示了如何利用这些断言进行数字字符串的处理,以实现特定的匹配和替换操作。
摘要由CSDN通过智能技术生成

环视
也叫零宽断言
它匹配的是一个位置,该位置必须满足零宽断言条件,才能继续往下进行匹配。
由于位置不是字符,它是没有宽度的,所以叫做零宽断言。

环视分为4种情况,概念是想通的,用哪种需要根据自己的需求来决定:
否定逆序环视(?<!)
肯定逆序环视(?<=)
否定顺序环视(?!)
肯定顺序环视(?=)

否定逆序环视:在这个位置的前边(逆序),不能有(否定)条件给出的字符串
肯定逆序环视:在这个位置的前边(逆序),必须是(肯定)条件给出的字符串
否定顺序环视:在这个位置的后边(顺序),不能有(否定)条件给出的字符串
肯定顺序环视,在这个位置的后边(顺序),必须是(肯定)条件给出的字符串

举例
1234567890
比如给这一串数字转为英文的写法,需要每三位加一个逗号。
那么我们就需要找到这样的位置。
这个位置有什么规律呢,每个逗号后边必须有3的倍数个数字,且个位数字后不能有逗号,那么可以这么写:

(?=(\d\d\d)+\b)

表示需要3个数字这样的组合,至少出现1次,最后是单词的分界符。
注意零宽断言,并没有真的匹配,环视的意思可以这么理解,即匹配前先看一看,看前/后是否满足条件,然后再决定当前位置时候合适开始匹配,环视时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值