我的CSV文件中有以下行
,1,193,23 Video,,"Slotsgade 2, 2.th",,,,,,Copenhagen N,,DK-2200,Denmark,,,,,,,,
,,,Europe,+45 31450980,,info@23company.com,www.23video.com,,,,,,,,Cabsat Online
Video Industry Sourcebook 12,Mr.,Kristoffer,,Schou,,M,,,,,,,,,,,,,,,,,,,,,,,,,
,,,schou@23company.com,,,,,,,
如你所见
"Slotsgade 2, 2.th"
之间有一个逗号,现在我使用preg_split
来爆炸列中的行。
有人可以建议我在双引号之间跳过逗号的正则表达式
我已经尝试过了:
/,|".*(?=")/
我可以在preg_split
中使用什么正则表达式来正确获取数据?
答案 0 :(得分:5)
使用fgetcsv功能,它将为您处理。
您还有str_getcsv,它会将CSV字符串解析为数组。
答案 1 :(得分:0)
来自RegexBuddy的库:
CSV:任何字段
匹配CSV文件中的任何单个字段。使用此正则表达式进行迭代 在所有领域。
"[^"\r\n]*"|[^,\r\n]*
CSV:具有额外空格的任何字段
匹配CSV文件中的任何单个字段。使用此正则表达式进行迭代 在所有领域。包括前后的额外空格 正则表达式匹配中的双引号字段。
[ \t]*+"[^"\r\n]*+"[ \t]*+|[^,\r\n]*+
CSV:完整行,所有字段
匹配逗号分隔文件中的完整行,每个文件包含3个字段 行,将每个字段捕获到反向引用中。匹配CSV行 使用更多或更少的字段,只需复制或删除捕获 基团。
^("[^"\r\n]*"|[^,\r\n]*),("[^"\r\n]*"|[^,\r\n]*),("[^"\r\n]*"|[^,\r\n]*)$