Google Apps脚本正则表达式删除“ |”单引号,管道,单引号-导致超时

时间:2018-12-20 01:44:36

标签: regex google-apps-script timeout

我正在清理格式不正确的“ csv like”文件并将其保存到驱动器中。

此正则表达式导致我的脚本在30分钟后在大型文件上超时。当文件只有10条记录时,它将运行良好。

var content = content.replace(/['|']/g, "|"); // Replaces the "'|'"  

当我删除一个正则表达式并运行下面的命令时,它可以在大约2分钟内正常运行20k条记录。

var content = content.replace(/\r\n\d{1,5}\|/g, "\r\n~~$&").replace(/\r\n/g, "").replace(/~~/g, "\r\n"); 

我在上述正则表达式上尝试了大约50种变体,但无法使其正常工作。有人有建议吗?

1 个答案:

答案 0 :(得分:1)

此行不符合您的想法:它将文件中的所有'|替换为|

var content = content.replace(/['|']/g, "|"); // Replaces the "'|'"

演示:https://regex101.com/r/WpSWC1/2/

如果您只想用'|'替换模式|,则应该使用

var content = content.replace(/'\|'/g, "|");

演示:https://regex101.com/r/ntwF4a/1

因为在正则表达式中使用[ ]定义了一个字符范围:

https://www.regular-expressions.info/charclass.html

这可能不足以解决20k records上的超时问题。您可能需要将其分成较小的部分并分别进行处理。