浏览 3075 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-25
看到如下解释: 1. \w 先匹配到一个英数字符。 2. (?=\1\1\1)\1 匹配第一个 group 中匹配到的字符3次——表面上看这个表达式匹配了4个字符,实际上只要3个相同的字符就能满足匹配要求。加上之前的 \w,就是要求匹配重复一个4次以上的英数字符串。 3. 最后面的 + 限定了第二个 group: ((?=\1\1\1)\1),也就是要求在匹配字符之后至少存在3个或者3个以上的重复字符才能匹配成功,所以当匹配到重复字符串末尾只剩两个字符的时候,该表达式即不能匹配成功,所以最后2个重复字符是永远会被排除在匹配到的字符串之外的。 为什么实际上是匹配3个就行了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-25
4楼说的对, 本回复之前说反了
|
|
返回顶楼 | |
发表时间:2008-05-27
更新一下 还是不明白
|
|
返回顶楼 | |
发表时间:2008-05-31
\w(?=\1\1\1)(\1) 中红色部分说明,这个位置的右边有三个\1就行了.当然,实际匹配时由于后面已经有了一个\1,所以只需要额外再有两个就行了(因此6个字符就匹配了前4个).
2楼的说反了方向. |
|
返回顶楼 | |