Wie csv Datei mit Kommas in den Daten per RegExp verarbeiten?
Hallo,
ich möchte CSV Dateien mit Regulären Ausdrücken verarbeiten.
Hauptsächlich verlasse ich mich darauf, dass nach dem x.ten Komma, die x.te Spalte ist.
Das klappt aber nicht immer.
Die Herausfoderung ist nun, dass es auch Spalten im CSV gibt, die selbst (ein oder mehrere) Kommas enthalten und mit " maskiert sind.
Ein
/^[^,]*,[^,]*,Treffer/
findet so meistens das Wort "Treffer" in der 3. Spalte.
Aber nicht, wenn die Zeile so aussähe:
123,"dies,das",Treffer,weiter
da hier das Komma im Text dazwischenfunkt.
Ich habe nun schon mit lookaheads und lookbehinds probiert, Kommas zwischen Hochkommas einfach durch Punkte zu ersetzen:
s/((?<=,")[^",]*),([^",]*(?=",))/\$1.\$2/g
das klappt zwar gut für genau 1 Komma, nicht aber für 2+ Kommas in einem Hochkomma-Text.
Hat jemand sowas schonmal gemacht, und kann mir ggf. eine funktionierende RegExp nennen?
viele Grüße, Farbauti.
Ein
/^[^,]*,[^,]*,Treffer/
findet so meistens das Wort "Treffer" in der 3. Spalte.
Aber nicht, wenn die Zeile so aussähe:
123,"dies,das",Treffer,weiter
da hier das Komma im Text dazwischenfunkt.
Ich habe nun schon mit lookaheads und lookbehinds probiert, Kommas zwischen Hochkommas einfach durch Punkte zu ersetzen:
s/((?<=,")[^",]*),([^",]*(?=",))/\$1.\$2/g
das klappt zwar gut für genau 1 Komma, nicht aber für 2+ Kommas in einem Hochkomma-Text.
Hat jemand sowas schonmal gemacht, und kann mir ggf. eine funktionierende RegExp nennen?
viele Grüße, Farbauti.
Please also mark the comments that contributed to the solution of the article
Content-Key: 188264
Url: https://administrator.de/contentid/188264
Printed on: April 29, 2024 at 15:04 o'clock
2 Comments
Latest comment