首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分割CSV数据时忽略引号换行符

分割CSV数据时忽略引号换行符
EN

Stack Overflow用户
提问于 2017-02-20 20:07:40
回答 1查看 885关注 0票数 1

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

就像这样:

代码语言:javascript
运行
复制
 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,value4 2\n value3,value4 4‘。现在我有了一个csv文件,它的数据包括“value4 1\nvalue1 1”,value4 2\n value3,value4 4‘。

我找到了一种分割数据的方法。str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); 这里

我把它写成“\n”这样。var newline = dataFile.split("\n(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

现在它起作用了,但是它很慢。我对regex一无所知,有什么方法可以更快地编辑这个regex拆分吗?我想做的就是忽略双引号中的换行符。

编辑:

这并没有回答这个问题,如何使regex分裂得更快,但我已经为我的特定数据找到了解决办法。

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

代码语言:javascript
运行
复制
var newline = dataFile.split(',\n')

只是把我想要的台词分开。这比我的正则表达式要快得多,但它并不适用于所有的数据,所以我不认为它能回答我的问题。我将用它来代替更好的解决方案。

EN

Stack Overflow用户

发布于 2017-02-21 13:06:50

解析CSV的实用程序函数不适用于您?CsvParser医生

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42353363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档