$lineArray = preg_split('/\t\s*(?=([^"]*"[^"]*")*[^"]*$)/', $line);
上面的代码片段用于拆分制表符分隔文件,其中制表符不在双引号内。除了有双标签(缺少字段)的情况外,它工作正常。基本上,当有两个选项卡时,PHP只能看到一个选项卡。是否有标签宽度选项?
答案 0 :(得分:1)
\ s也会匹配一个标签,你显然不希望这样。
$lineArray = preg_split('/\t[ \r\n]*(?=([^"]*"[^"]*")*[^"]*$)/', $line);
应该只通过匹配非制表符空格来解决这个问题。