Google Sheets Regex引擎支持落后吗?

问题描述

给我的印象是Sheets支持re2,而re2不支持环视

请考虑遵循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",rg.test(s));
  
  s = "dog";
  Logger.log("%s: %s",rg.test(s));
  
}

结果是完美的:

The results are perfect:

因此是否支持该问题?

解决方法

您正在Google Apps脚本中使用JavaScript。 GAS现在使用了现代JavaScript引擎,该引擎支持后向,命名捕获组,s修饰符。因此,您的模式效果很好。

如果您在REGEXEXTRACTREGEXREPLACE公式中使用向后搜索模式,则将失败,因为这些REGEX~函数使用RE2正则表达式库。您不能在其中使用后退功能。