Node.js抛出:“正则表达式太大”错误

时间:2019-12-28 21:42:47

标签: javascript node.js regex

我正在处理大型字符串,并且尝试替换长度不超过引号的1,000,000个字符以下的字符串:

/(<million characters>)+(?=(?:[^\'"`]*[\'"`][^\'"`]*[\'"`])*[^\'"`]*$)/

当我运行它时,会出现此错误:

  

语法错误:无效的正则表达式:/(<million characters>)+(?=(?:[^\'"`]*[\'"`][^\'"`]*[\'"`])*[^\'"`]*$)/:RegExp太大

我正在运行节点v12.13.1。

1 个答案:

答案 0 :(得分:0)

您的正则表达式超出了长度限制,因此您需要寻找另一种方法。

您可以尝试编写自己的不使用正则表达式的匹配器。如果可以找到子字符串的位置(和长度),则可以替换它。 Naïve string search可能已经足够好了,除非您的字符串异常到足以导致最坏的情况。