Javascript 分割CSV数据时忽略带引号的换行符

Javascript 分割CSV数据时忽略带引号的换行符,javascript,csv,google-apps-script,Javascript,Csv,Google Apps Script,我正在尝试分割csv文件中的数据,以便在脚本中使用。我通常用换行符拆分数据,然后用逗号拆分该行 像这样: var i; var fileData = []; var id = 'csv file'; var file = DriveApp.getFileById(id).getAs('text/plain').getDataAsString(); var newline = dataFile.split('\n'); for(i in newLine){ var splitLin

我正在尝试分割csv文件中的数据,以便在脚本中使用。我通常用换行符拆分数据,然后用逗号拆分该行

像这样:

 var i;
 var fileData = [];
 var id = 'csv file';
 var file = DriveApp.getFileById(id).getAs('text/plain').getDataAsString();
 var newline = dataFile.split('\n');
 for(i in newLine){
  var splitLine = newline[i].split(',');
  fileData.push(splitLine);
};
将csv拆分为一个数组效果很好。我现在发现它不适用于单元格中引用的换行符或逗号

我通常处理csv数据,如“value1,value2\n value3,value4”。现在我有一个csv文件,其中包含如下数据“value1\nvalue1”、value2\n value3、value4”

我找到了一种正则表达式分割数据的方法<代码>str.split(“,(?=(?:[^\”]*\“[^\”]*\”*[^\“]*\”*[^\”]*$)”;

我像这样将它添加到“\n”中。
var newline=dataFile.split(“\n(?=(?:[^\“]*\”[^\“]*\”*[^\“]*\”*[^\“]*$”)

现在它工作了,但速度很慢。我对正则表达式一无所知,有没有办法编辑此正则表达式拆分以更快地工作?我只想忽略双引号中的换行符

编辑:

这并没有回答如何使正则表达式拆分更快的问题,但我已经为我的特定数据找到了一个解决方法

我的数据在换行符之前有空格,所以它前面会有一个逗号,如“,\n”,但引号中的换行符之间有两个单词,没有逗号。“值\n值”。我写了这样的拆分

var newline = dataFile.split(',\n')

我只想分几行。这比我使用的正则表达式快很多,但是它对所有数据都不起作用,所以我不认为它是对我的问题的回答。这是我将要使用的,以代替更好的解决方案。

解析CSV的实用程序功能不适用于您

解析CSV的实用程序功能不适合您

我可以为常规的CSV文件,我没有问题。我刚刚在我正在处理的文件中尝试了它,它用引号将换行符当作换行符处理。我的例子也有同样的问题。我可以为常规的CSV文件,我没有问题。我刚刚在我正在处理的文件中尝试了它,它用引号将换行符当作换行符处理。我的例子也有同样的问题。在使用split或CSV解析器进行解析之前,您是否厌倦了替换/删除so str.replace(/\“/gi,”)之类的引号?谢谢,但同样的情况也会发生。CSV解析和split都会在换行符处拆分成行,无论是在引号内还是在换行符外。您是否厌倦了替换/删除so str.replace(/\“/gi,”)之类的引号,“”),然后使用split或CSV解析器进行分析?谢谢,但同样的情况也会发生。CSV解析和split都会在换行时拆分为行,无论是引号内还是引号外。