Ich habe ein Problem mit einigen korrupten CSV-Datei. Ich bekomme es wie folgt aus:Regex für falsch zitierte CSV-Datei
column1,column2,column3,column4,column5,column6
123,"some text",""column3 text"",""still column3 text"",4,234,""
123,"some text",""column3 text"",4,234,""
In Tabelle sollte es so aussehen:
column1 | column2 | column3 | column4 | column5 | column6
123 | some text | "column3 text, still column3 text" | 4 | 234 |
123 | some text | "column3 text" | 4 | 234 |
ich die Datei mit php lese und versuchte es mit str_getcsv in ein Array zu verwenden. Aber wegen dieser gebrochenen Zitate wird es nicht funktionieren und immer mehr Spalten als Titel haben.
Insgesamt brauche ich keinen Wert von Spalte 3, also habe ich versucht, einige Regex zu machen, um drei Gruppen zu machen und dann preg_replace. Aber ich bekomme keine Regex, die für beide Zeilen funktioniert.
Mit dieser regex bekomme ich nur erste Zeile: https://regex101.com/r/OjTAAC/1
und damit ich nur zweite Zeile erhalten: https://regex101.com/r/I2xqPs/1
Wer etwas Hilfe hat, wie einen regulären Ausdruck zu erhalten, die für beide Situationen funktioniert?
Es muss einen anderen Weg geben [diese regex] (https://regex101.com/r/ngiijv/1) scheint zu umständlich. –
das leere "" am Ende wird Probleme machen – Eumel
Sie könnten Zeilen aufteilen und eine fallweise Regex Abhängigkeit von der Anzahl der Kommas – Eumel