我正在处理大型字符串,并且尝试替换长度不超过引号的1,000,000个字符以下的字符串:
/(<million characters>)+(?=(?:[^\'"`]*[\'"`][^\'"`]*[\'"`])*[^\'"`]*$)/
当我运行它时,会出现此错误:
语法错误:无效的正则表达式:
/(<million characters>)+(?=(?:[^\'"`]*[\'"`][^\'"`]*[\'"`])*[^\'"`]*$)/
:RegExp太大
我正在运行节点v12.13.1。
答案 0 :(得分:0)
您的正则表达式超出了长度限制,因此您需要寻找另一种方法。
您可以尝试编写自己的不使用正则表达式的匹配器。如果可以找到子字符串的位置(和长度),则可以替换它。 Naïve string search可能已经足够好了,除非您的字符串异常到足以导致最坏的情况。