Я пытаюсь написать регулярное выражение, которое позволит мне разобрать CSV-файлы, которые создает excel. Я заметил, что при экспорте CSV из excel, если поле является строкой, оно будет заключено в кавычки. Если эта строка содержит кавычки, она избежит каждой цитаты с цитатой !!Сопоставьте запятую, которая не находится в кавычках
Что я хочу сделать, так это разделить каждую строку, которую я разбираю в полях. В свете вышеизложенного, я должен расколоться, когда есть запятая, которая не входит в кавычки. Мое регулярное выражение ужасно, так как я могу это сделать?
Я могу разделить запятую, но как я могу сказать, когда ее не между цитатами ???
$lines = file($toce_path);
foreach ($lines as $line) {
$line_array = preg_split("/,/", $line);
$test = "($line_array[0], $line_array[1], $line_array[2])";
echo $test.'<br />';
}
This question точно, как у меня, но он не работает с preg_split. Preg_split требует синтаксиса регулярных выражений, совместимого с Perl.
Спасибо всем за любую помощь
Возможно ли использовать правильный синтаксический анализатор CSV? –
Повторное выражение другого вопроса кажется Perl-совместимым со мной. Я был бы удивлен, если бы это не сработало. –
@mmyers - Я не уверен, какие из них доступны? Я пытался найти что-то в PHP, но я прочитал несколько комментариев, что fgetcsv не работает с CSV, созданным excel. Но я так близко к этому, я просто безнадежен в регулярном выражении. – Abs