关于正则表达式正向预搜素问题的疑惑,求解答
正向预搜索:“(?=xxxxx)”
在被匹配的字符串中,它对所处的“缝隙”或者“两头”附加的条件是:所在缝隙的右侧,必须能够匹配上 xxxxx 这部分的表达式。因为它只是在此作为这个缝隙上附加的条件,所以它并不影响后边的表达式去真正匹配这个缝隙之后的字符。
这段话的意思我能理解。
比如“(\w)((\1)(?=\1\1\1))+”将匹配“aaa ffffff 999999999”红色字体部分。
我不能立即的是下面这段:
表达式“(\w)((?=\1\1\1)(\1))+”在匹配字符串“aaa ffffff 999999999”时,将可以匹配6个“f”的前4个,可以匹配9个“9”的前7个。这个表达式可以读解成:重复4次以上的字母数字,则匹配其剩下最后2位之前的部分。当然,这个表达式可以不这样写,在此的目的是作为演示之用。
这个怎么理解呢?为啥是重复4次以上的字母数字,则匹配其剩下最后2位之前的部分?
求释疑。3ks