正则表达式困惑

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:32:30
正则表达式
(?=2)\d
匹配123123
结果是匹配到两个2

*****************
而正则表达式
\d(?=2)
匹配123123可以匹配出两个1,这时(?=2)写在要匹配内容得后面,像这样的我可以理解 。那么请问高手把正向预查写在前面是什么意思?
能否举例说明一下,谢谢!

(?=2)\d
123123 从前开始扫描找到2的起始位置,匹配一个数字就是第一个2,继续扫描又找到下一个2的起始位置,再匹配一个数字就是第二个2

记住?=是找位置的意思就可以
比如用
(?=2)2就可以跟上面一样找到两个2
而用
(?=2)3就不行,因为先找2的位置,然后再匹配这个位置是不是3,而这个位置肯定不是3,所以就一个也不能匹配