Google Apps脚本正则表达式意外行为

时间:2018-01-30 11:32:17

标签: regex google-apps-script

我在谷歌应用程序脚本中使用正则表达式得到了一些奇怪的行为,我不确定我是否只是遗漏了一些明显的东西。

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)?"产生相同的结果,并取代" "与其他任何东西也产生相同的结果。

如果我将正则表达式更改为以下任何一项,则它们都不会按预期匹配:

  • "(?:Image)+"
  • "(?:图片)"
  • "(图片)*"
  • "(?:Image *)"

我认为非捕获组在这种情况下应该完全没有影响。我在这里错过了什么?希望我犯了一个愚蠢的错误。

0 个答案:

没有答案