为什么正则表达式
/A?/g
只匹配字符串中的第一个大写字母A?据我所知,如果我执行以下代码:reg = /A?/g;
match1 = reg.exec('AaAa');
match2 = reg.exec('AaAa');
match3 = reg.exec('AaAa');
console.log(match1, match2, match3); //["A"], [""],[""]
我无法捕获第二个"A"的出现。为什么?虽然?使A变成可选项,但由于它是贪婪的,难道不应该在第二次匹配中选择包括第二个"A"吗?
"AaAa".match(/A?/g)
显示["A", "", "A", "", ""]
。 - Kenney