用于在PHP中解析CSV的正则表达式

dis*_*cer 7 php regex csv

我已设法使用此正则表达式拆分CSV文件:"/,(?=(?:[^ \"] \"[^ \"] \")(?![^ \"] \"))/"

但我最终得到了一个包含开头和结尾双引号的字符串数组.现在我需要一个正则表达式来删除分隔符双引号的字符串.

据我所知,CSV格式可以用双引号封装字符串,并且所有已经是字符串一部分的双引号都会加倍.例如:

我的"其他"猫

"我的""其他""猫"

我基本上需要的是一个正则表达式,它将用一系列(N/2 - 向下舍入)双引号替换N个双引号的所有序列.

或者,还有更好的方法 ?提前致谢.

emp*_*mpi 21

有读取csv文件的功能:fgetcsv

  • +1当你有一个完全符合你想要的内置函数时,你很难在PHP中使用正则表达式. (10认同)
  • 因为也许您从没有正确引用文本字段的第 3 方获得 CSV 导出,并且 fgetcsv 错误地将字符串 1.15 解释为值为 1.1499999999 的浮点数。但是,最后编写一个快速脚本来修复 CSV 文件然后使用 fgetcsv 更容易:o) (2认同)