Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将引号添加到CSV列(不带引号)的正则表达式_Php_Csv - Fatal编程技术网

Php 将引号添加到CSV列(不带引号)的正则表达式

Php 将引号添加到CSV列(不带引号)的正则表达式,php,csv,Php,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," =====

我有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。

简单答案。不 无法区分这两种情况

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

你不知道?所以你的电脑也无法做到这一点

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

如果您知道特定的2列是一个数字,您可以在解析后尝试合并它们。

您如何知道6402应该是一个数字?