Javascript 谷歌脚本:";太复杂的regexp“;

Javascript 谷歌脚本:";太复杂的regexp“;,javascript,regex,google-apps-script,google-docs-api,Javascript,Regex,Google Apps Script,Google Docs Api,直到现在,当控制台返回时,我正在测试的一个函数每天都在工作 "Error: Too complex regexp." 当然,现在正则表达式很长: titleList = titleList.join("|"); var reg = "("+titleList+")?( )?\\d+[ab]?(:\\d+(-\\d+)?)?"; 其中标题列表是大约200个奇数值的数组。正则表达式检查文本的一部分以查找类似“DeVitaCaesarium 7:14”的内容,其中“DeVitaCaesariu

直到现在,当控制台返回时,我正在测试的一个函数每天都在工作

  "Error: Too complex regexp."
当然,现在正则表达式很长:

titleList = titleList.join("|");
var reg = "("+titleList+")?( )?\\d+[ab]?(:\\d+(-\\d+)?)?";
其中
标题列表
是大约200个奇数值的数组。正则表达式检查文本的一部分以查找类似“DeVitaCaesarium 7:14”的内容,其中“DeVitaCaesarium”来自标题列表

然而,直到今天,这个正则表达式一直运行良好。谷歌脚本设置的限制改变了吗?如果是,如何修改表达式而不出现错误?

解释如下:

复杂性(组件)限制

为了确保带有正则表达式的内容筛选器不会导致电子邮件的处理延迟,content Manager限制了正则表达式的复杂性。正则表达式最多可以有100个组件。Content Manager将每个特殊字符、字符集和文字字符字符串视为一个单独的组件。例如,regex\Wc[i |!]alis\W包含以下9个组件:\W,c,[,i,|,!,],alis,\W


我只能猜测谷歌应用程序脚本也有类似的限制。你可能比以前拥有更多的头衔。如果您再次使用硬编码的标题数量(更少)进行测试,并且测试成功,您知道这是限制。

是否有需要转义字符的新标题?^^^胡安说的话,到目前为止最有可能的解释。可能对处理该问题有用。尝试使用函数转义所有标题,但问题仍然存在。我甚至再次检查了标题列表(在网站上),它没有任何需要转义的字符。