1
khotyn 2012-07-02 23:38:01 +08:00
第二个匹配应该在第一个匹配结果的后面开始,因为第一次匹配完了以后只剩下一个 8 了,所以匹配不上,所以只有一个结果。
|
2
nani 2012-07-07 23:24:51 +08:00
不严紧,应该是这样吧 \w8{3}
|
3
013231 2012-07-08 01:45:39 +08:00
想匹配2次你应该写成
(?=\w8). 你可以这么理解: 一般的匹配会把已匹配到的部分消耗掉. /\w8/匹配了888中的前2个8, 它们被消耗掉了; 剩下的一个8自然无法和/\w8/匹配. 然而(?=pattern)是所谓的"正向肯定预查", 它的作用是"匹配, 但不消耗". /(?=\w8)/匹配了前2个8, 但并没把它们消耗掉. 不过只用/(?=\w8)/是不行的, 由于不消耗字符, 它只能无限在原地匹配, 所以在后面加一个'.', 消耗一个字符, 使匹配起点右移一位. |