Google Sheets Regex 引擎是否支持回顾?

Does Google Sheets Regex engine support lookbehind?

我的印象是 Sheets 支持 re2,它不支持 lookaround

考虑他遵循 Sheet 的示例脚本。 正则表达式期望匹配单词 dog 本身或者如果前面有单词 cat.

function testRegex(){
  
  var rg = /(?<=(cat|\b))dog/;
  var s = "catdog";
  
  Logger.log("%s: %s",s,rg.test(s));
  
  s = "sdog";
  Logger.log("%s: %s",s,rg.test(s));
  
  s = "dog";
  Logger.log("%s: %s",s,rg.test(s));
  
}

结果很完美:

所以问题是否支持?

您正在 Google Apps 脚本中使用 JavaScript。 GAS 现在使用现代 JavaScript 引擎,支持后视、命名捕获组、s 修饰符。所以,你的模式效果很好。

如果您在 REGEXEXTRACTREGEXREPLACE 公式中使用回顾模式,它将失败,因为那些 REGEX~ 函数使用 RE2 正则表达式库。你不能在那里使用后视。