2014-11-09 37 views
0

我已获取CSV中的数据,但无法更改格式。正则表达式将引号添加到不包含引号的CSV列中

某些列有双引号,其他没有引号。

唯一的问题,以及我需要在第一个地方添加双引号的原因是,某些列的数字带有逗号,但是没有双引号 - 这会导致CSV处理中断。

有没有办法在正则表达式中区分这两种逗号?

下面是目前数据的样本行的一部分:

"NasdaqNM","-0.06 - -0.27%",19.00,25.75,1.04,1.28,0.50,21.75,17.67,1.97,6.652,3.40,1.77,95.2M,21.7642,22.8678,6,402," ====== " 

正如你可以看到,在6402,这应该是一个数字,它会分裂成两个。

所以我想我的问题是 - 有没有办法分析CSV中的逗号并生成正确列的双引号?

我正在使用PHP。

+0

你怎么知道'6,402'应该是一个数字? – pguardiario 2014-11-09 06:59:42

回答

0

简单的答案。第 这两种情况是不可能区分的。

简单测验: 这里有多少个数字:1,2,3,4,5

你不能说?所以你的电脑也无法做到这一点。

您需要引用包含数据的逗号,或交换点的逗号。

如果你知道具体的2列是一个数字,你可以尝试合并后解析。

相关问题