我在谷歌应用程序脚本中使用正则表达式得到了一些奇怪的行为,我不确定我是否只是遗漏了一些明显的东西。
var text = "I am testing this IMAGING";
var regex = new RegExp('(?:Image)\s*','g');
var capture = regex.exec(text);
while (capture != null) {
Logger.log("captured: "+capture[0]);
capture = regex.exec(text);
}
在这种情况下,它匹配" I" 3次。为什么?将正则表达式设置为"(?:Image)?"产生相同的结果,并取代" "与其他任何东西也产生相同的结果。
如果我将正则表达式更改为以下任何一项,则它们都不会按预期匹配:
我认为非捕获组在这种情况下应该完全没有影响。我在这里错过了什么?希望我犯了一个愚蠢的错误。