Google Scripts:“太复杂的正则表达式”

时间:2015-12-07 18:22:36

标签: javascript regex google-apps-script google-docs-api

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

  "Error: Too complex regexp."

现在,被授予,正则表达式很长:

titleList = titleList.join("|");
var reg = "("+titleList+")?( )?\\d+[ab]?(:\\d+(-\\d+)?)?";

其中titleList是一个包含200多个值的数组。正则表达式检查一部分文本以找到类似“De Vita Caesarium 7:14”的内容,其中“De Vita Caesarium”来自标题列表。

然而,这个正则表达式一直运作到今天。 Google脚本设置的限制是否发生了变化?如果是这样,我如何修改表达式而不会遇到错误?

1 个答案:

答案 0 :(得分:1)

This documentation解释说:

复杂性(组件)限制

  

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

我只能猜测Google应用脚本有类似的限制。你可能拥有比以往更多的头衔。如果再次使用硬编码的标题(更少)进行测试并且它有效,那么就知道这是限制。