You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询正则表达式RegExpMatchArray中OR语句的最大数量限制

JavaScript正则表达式分支(OR语句)数量上限说明

JavaScript正则表达式中的分支(即|分隔的OR语句)没有官方规定的硬上限,但实际使用中会受以下因素限制:

  • 内存与编译开销:正则表达式编译时会占用内存,分支数量越多,编译后的表达式体积越大。当分支达到上万级甚至更多时,可能触发内存不足错误,或导致编译、匹配的耗时大幅增加。
  • JS引擎差异:不同JavaScript引擎(如V8、SpiderMonkey)对正则的优化逻辑不同,能承载的分支数量存在差异。比如Gmail Apps Script使用的V8引擎对大量分支的兼容性较好,但极端场景下仍会有性能瓶颈。
  • 执行环境限制:你的代码运行在Gmail Apps Script中,该环境有单脚本执行时长限制(最长6分钟),若分支过多导致正则匹配耗时过长,可能触发超时终止脚本。

优化建议

当需要匹配大量关键词时,不建议用多分支正则,更高效的方式是将关键词存入数组,通过数组方法检查:

const spamKeywords = ['car', 'truck', 'van', 'house', 'cat', 'dog', 'apple', 'orange', 'you won'];
const body = msg.getPlainBody().toLowerCase();
if (spamKeywords.some(keyword => body.includes(keyword))) {
  console.log('Msg Delete');
  console.log(i);
  Gmail.Users.Messages.remove('me', msg.getId());
  continue;
}

这种方式无数量限制,可读性和稳定性都更优,关键词数量越多优势越明显。

内容的提问来源于stack exchange,提问作者crjunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:57:05