Analysiert der TSV-Datei

Muss ich parse eine Datei im TSV-format (tab-separierte Werte). Ich habe einen regex verwenden, brechen Sie die Datei in jeder Zeile, aber ich kann nicht finden, eine Befriedigung zu Parsen jeder Zeile.
Für jetzt habe ich dieses:

(?<g>("[^"]+")+|[^\t]+)

Aber es funktioniert nicht, wenn ein Element in der Zeile hat mehr als 2 aufeinander folgende doppelte Anführungszeichen.

Hier ist, wie die Datei formatiert ist: jedes element wird getrennt durch einen Tabulator. Wenn ein Element enthält eine Registerkarte, es ist eingeschlossen in Anführungszeichen ein. Wenn ein Element enthält, ein doppeltes Anführungszeichen, es wird verdoppelt. Aber manchmal ein element enthält 4 conscutive doppelte Anführungszeichen, und die oben genannten regex spaltet sich das element in 2 verschiedene.

Beispiele:

item1ok "item","2","oK"

ist richtig analysiert wird in 2 Elementen: item1ok und Element"2"ok (nach dem trimmen den unnötigen Anführungszeichen), aber:

item1oK "item""""2oK"

wird analysiert, in 3 Elemente: item1ok, Element und "2ok (nach dem trimmen wieder).

Hat jemand eine Idee, wie die regex passen in diesem Fall? Oder gibt es eine andere Lösung zu analysieren TSV einfach? (Dies mache ich in C#).

InformationsquelleAutor Antoine | 2010-03-09
Schreibe einen Kommentar