CSV mit Regex splitten - komme nicht weiter ...

16/06/2010 - 12:00 von Michael Lange | Report spam
Hallo Leute,

der Titel sagt es schon, möchte die Zeilen aus einer CSV-Datei in die
Spalten zerlegen. Hab früher schon mal ein wenig mit sed und regulàren
gearbeitet, allerdings komme ich mit Regex.Split() (.Net 2.0) nicht klar.

Meine Überlegung ...

string csv = "\"111\";\"22\"\"22\";\"333\"";
string expr = @"""{1,1}(([^""]|"""")*?)""{1,1}(;|$)";
Regex r = new Regex(expr);
string[] cols = r.Split(csv);

Soll:
cols[0] "111"
cols[1] "22\"\"22"
cols[2] "333"

Ist:
cols[0] ""
cols[1] "111"
cols[2] "1"
cols[3] ";"
cols[4] ""
cols[5] "22\"\"22"
cols[6] "2"
cols[7] ";"
cols[8] ""
cols[9] "333"
cols[10] "3"
cols[11] ""
cols[12] ""

Das "one-two-banana"-Beispiel aus der Hilfe bringt mich nicht wirklich
weiter, und im WWW hab ich nur was mit PHP und Perl gefunden.

Vielen Dank für eure Mühe.
 

Lesen sie die antworten

#1 Elmar Boye
16/06/2010 - 12:07 | Warnen spam
Hallo Michael,

Michael Lange schrieb:
der Titel sagt es schon, möchte die Zeilen aus einer CSV-Datei in die
Spalten zerlegen.



Mach Dir nicht die Arbeit, verwende etwas wie
http://www.codeproject.com/KB/datab...eader.aspx

denn ein RegEx ist oft langsamer und auch fehleranfàlliger.

Gruß Elmar

Ähnliche fragen