正则表达式将引号添加到不带引号的 CSV 列
Posted
技术标签:
【中文标题】正则表达式将引号添加到不带引号的 CSV 列【英文标题】:Regular Expression to add quotes to CSV columns without quotes 【发布时间】:2014-11-09 03:25:28 【问题描述】:我有 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," ====== "
如您所见,在应该是一个数字的 6,402 处,它将一分为二。
所以我想我的问题是 - 有没有办法分析 CSV 中的逗号并为正确的列生成双引号?
我正在使用 php。
【问题讨论】:
你怎么知道6,402
应该是一个数字?
【参考方案1】:
简单的答案。不。 无法区分这两种情况。
简单测验:
这里有多少个数字:1,2,3,4,5
?
你不知道吗?所以你的电脑也无法做到这一点。
您需要用逗号引用包含数据,或者用逗号交换点。
如果您知道特定的 2 列是一个数字,您可以尝试在解析后合并它们。
【讨论】:
以上是关于正则表达式将引号添加到不带引号的 CSV 列的主要内容,如果未能解决你的问题,请参考以下文章