【发布时间】:2015-02-16 05:41:52
【问题描述】:
我正在编写一个 google 应用程序脚本,该脚本从 gmail 附件中的 CSV 文件中提取内容。我需要将 csv 数据拆分为几个数组(每一行都是它自己的数组)。这些我都记下来了。
我的问题是:CSV 中的值之一是“City, St”格式。因此,当我使用 string.split(',') 拆分数组时,我最终会得到一个额外的“列”。我解决这个问题的想法是备份并删除初始字符串中的逗号。这是我的代码的相关部分:
var attachments = msgs[i][j].getAttachments();
for (var k = 0; k < attachments.length; k++) {
var attachmentData = attachments[k].getDataAsString();
var regex = new RegExp('\,\s(?:[A-Z]{2}\")', 'gi');
attachmentData.replace(regex,' ');
...
所以我要做的只是找到一个逗号,后跟一个空格,然后是两个字母,然后是一个引号。我只想用空格替换逗号。我也试过了
var regex = new RegExp('(\,\s)([A-Z]{2}\")', 'gi');
attachmentData.replace(regex,$2);
没有运气。这是我正在运行的(非常长的)数据字符串的随机样本:
语音,传入,(###) ###-####,(###) ###-####,,,,"达拉斯, TX",12/12/2014, 06:26 PM,电话,语音信箱,00:00:27,$0.000,-,, ,来电,(###) ###-####,,###,,,"达拉斯, TX",12/12/2014,06:26 PM,电话,语音信箱,00:00
任何人都可以看到我没有看到为什么这不起作用吗? (或者有什么更好的方法来做到这一点?)
【问题讨论】:
标签: javascript regex csv google-apps-script google-apps