我已经编写了一个简单的代码来捕获字符串中的某个组:
/[a-z]+([0-9]+)[a-z]+/gi (n chars , m digts , k chars).
code :
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);
这是同一行......它在哪里记得第一个结果已经显示了?