Biorąc pod uwagę plik CSV, który zawiera znaki nowej linii/zwracanych w niektórych polach, w jaki sposób analizować dane bez dzielenia pola na kilka wierszy.Jak analizować dane CSV, które zawierają znaki nowej linii w polu przy użyciu JavaScript
Przykład CSV danych:
ID;Name;Country;ISO-2;Address;Latitude;Longitude
022wje3;Europa;Italy;IT;"Viale Kennedy 3
34073 Grado";"45,67960";"13,40070"
024oua5;Hiberia;Italy;IT;"Via XXIV Maggio 8
00187 Rome";"41,89720";"12,48680"
028gupn;Regal Riverside;Hong Kong;HK;"34-36 Tai Chung Kiu Road
Shatin
Hong Kong";"22,38260";"114,19600"
02j7qry;Okaliptus Holiday Villas Apart;Turkey;TR;"Sevket Sabanci Caddesi No. 70
Bahçelievler Mevkii
Turgutreis";"37,02130";"27,25120"
02pc99z;California Apartementos;Spain;ES;"Prat d'en Carbó
43840 Salou";"41,07620";"1,14667"
02tu1jz;Elvis Presley's Heartbreak;United States;US;"3677 Elvis Presley Blvd.
Memphis
Tennessee 38116";"35,04850";"-90,02710"
Uwaga: pola są rzeczywiście oddzielone średnikiem
;
ponieważ adres może zawierać przecinków
Każdy wiersz ma 7 pól, ale nie chcemy omyłkowo przeanalizować dane w polu zawierającym znaki nowego wiersza jako wiele wierszy ...
Znaleźliśmy kilka Perl skoncentrowanego odpowiedzi na StackOverflow:
- How to parse CSVs with newline and commas inside a field in Perl?
- Text::CSV parsing when data contains newline
ale jestem nieco zardzewiały na Perl i nie odkrył JS-koncentruje odpowiedź.
Newlines zawijane w podwójne cudzysłowy nie są końcem zapisu. Czy otrzymałeś to z dowolnego z tych linków Perla? A jeśli nie rozumiesz, w jaki sposób zrobił to Ben Nadel, nie będziesz wiedział, jak to zrobić w przypadku niestandardowych przypadków. Lepszym rozwiązaniem jest wyszukiwanie SO w przypadku wyrażeń regularnych parsowania csv. Sam napisałem sporo. – sln
Dokładnie. nowe linie, które znajdują się w podwójnych cudzysłowach, nadal są tym samym wierszem/polem. Myślę, że zrozumiałem "CSVToArray" i rozwiązało to nasz natychmiastowy problem. Przeczytam kilka twoich odpowiedzi RegEx, żeby odświeżyć. Dzięki! – nelsonic