Я пытаюсь вырвать строку из файла CSV без использования синтаксического анализатора, и все, что мне нужно сделать, это разбить строку на основе запятых, используя php , Само по себе это довольно легко, если на входе нет запятых, что не так. Я хочу игнорировать запятые, которые заключены в двойные кавычки.Regex: Matching ',' после нулевого или нечетного вхождения двойной кавычки
Полностью игнорируя последнее предложение, я решил изменить эту проблему ставит перед собой следующие:
Я хочу, чтобы разделить строку, основываясь на запятые, которые предшествуют без двойных кавычек или разбросанные пары двойных кавычек.
Пример:
text,"some,"chars,chars"more,""text",
* x * x *
Где * результаты и х не является.
Является ли это невозможным регулярным выражением, а если нет, существует ли регулярное выражение, которое может обрабатывать этот вид ввода?
Есть ли какая-либо конкретная причина, почему вы не хотите использовать str_getcsv() http://uk3.php.net/manual/en/function.str-getcsv.php? Кстати, строка вашего примера будет недействительной, так как «внутри» должно быть экранировано или у вас есть капли, такие как «некоторые», символы, которые неправильно указаны, когда они должны быть –
. Я уверен, что это можно сделать, но это, вероятно, проще использовать что-то вроде 'fgetcsv()' для синтаксического анализа для вас. – Arjan
Можно сделать. На самом деле у меня есть один, но он больше соответствует стандартным правилам CSV, а не варианту экранирования и значениям в смешанных кавычках/без кавычек. – mario