我正在清理格式不正确的“ 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种变体,但无法使其正常工作。有人有建议吗?
答案 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
上的超时问题。您可能需要将其分成较小的部分并分别进行处理。