już udało się podzielić plik CSV przy użyciu tego wyrażenia regularnego: "/, (= (?:? [^ \"] \ "[^ \"] \ ") (?! [^ \ "] \"))/"Wyrażenie regularne do analizowania CSV w PHP
Ale skończyło się na tablicy ciągów, które zawierają podwójne i otwarte cudzysłowy. Teraz potrzebuję wyrażeń regularnych, które usuwają te łańcuchy podwójnych cudzysłowów separatora.
O ile mi wiadomo, format CSV może hermetyzować ciągi w podwójnych cudzysłowach, a wszystkie podwójne cudzysłowy, które są już częścią ciągu, są podwojone. Na przykład:
Mój "drugi" kot
staje
"My "" inny", "kot"
Co ja w zasadzie potrzebne jest regex, który zastąpi wszystkie sekwencje N doublequotes z sekwencja podwójnych cudzysłowów (N/2 - zaokrąglone w dół).
A może jest lepszy sposób? Z góry dzięki.
+1 Jesteś szalony, aby użyć wyrażenia regularnego dla CSV w PHP, gdy jest wbudowana funkcja, która robi dokładnie to, czego potrzebujesz – cletus
Tak, dlaczego chcesz ponownie wymyślić koło, gdy jest coś, co jest bardzo dobrze przetestowane, a które działa by rozwiązać twój problem. – Rachel
Ponieważ możesz uzyskać eksport CSV od strony trzeciej, która nie cytuje poprawnie pól tekstowych, a fgetcsv nieprawidłowo interpretuje ciąg 1.15 jako zmienną o wartości 1,1499999999. W końcu jednak łatwiej było napisać szybki skrypt, aby naprawić plik CSV, a następnie użyć fgetcsv: o) – frak