我制作了一个简单的代码来捕获字符串中的某个组:
/[a-z]+([0-9]+)[a-z]+/gi (n chars , m digts , k chars).
代码:
var myString='aaa111bbb222ccc333ddd';
var myRegexp=/[a-z]+([0-9]+)[a-z]+/gi;
var match=myRegexp.exec(myString);
console.log(match)
while (match != null)
{
match = myRegexp.exec(myString);
console.log(match)
}
结果是:
["aaa111bbb", "111"]
["ccc333ddd", "333"]
null
但是等一下,为什么他没有尝试这个bbb222ccc
部分?
我的意思是,它看到了,aaa111bbb
但他应该尝试一下bbb222ccc
……(太贪心了!)
我错过了什么?
还
看着
while (match != null)
{
match = myRegexp.exec(myString);
console.log(match)
}
它是如何发展到第二个结果的?起初有:
var match=myRegexp.exec(myString);
稍后(在一个while循环中)
match=myRegexp.exec(myString);
match=myRegexp.exec(myString);
它是同一行......它在哪里记得第一个结果已经显示?