Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Wie csv Datei mit Kommas in den Daten per RegExp verarbeiten?

Mitglied: Farbauti

Farbauti (Level 1) - Jetzt verbinden

19.07.2012 um 10:14 Uhr, 4289 Aufrufe, 2 Kommentare

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.
Mitglied: bytecounter
19.07.2012 um 10:27 Uhr
Hallo,

ganz so einfach klappt das auch leider nicht, denn Dein Script müsste theoretisch alle Kommata, die in Anführungszeichen stehen, ignorieren.

Warum nutzt Du denn nicht einfach Text::CSV aus dem CPAN? Das wäre doch viel einfacher.

vg
Bitte warten ..
Mitglied: Farbauti
19.07.2012 um 11:48 Uhr
Ich wollte es nice & simple halten, weil das Script auf verschiedene Rechner deployed werden soll, wo ich nicht weiß, welche Module dort installiert sind.

Ich habe mittlerweile eine akzeptable Lösung selbst gefunden:
s/,(?=[^"]+?(",|"$))/./g

Das ersetzt mir alle Kommas, die vor einem Hochkomma stehen, welches ein Stringende anzeigt (", oder am Zeilenende).

Grüße, Farbauti.
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Mehrere CSV-Dateien mit einem VBA Makro einlesen und automatisch verarbeiten

Frage von armini92VB for Applications3 Kommentare

Hallo! Ich schreibe gerade meine Bachelorarbeit und bekomme täglich zahlreiche Messergebnisse im CSV-Format ausgegeben. Diese muss ich manuell konvertieren, ...

VB for Applications

Einzelne daten aus verschiedenen csv dateien in eine excel zusammenfügen

Frage von K1200RVB for Applications4 Kommentare

Guten Tag zusammen, ich habe folgende Aufgabe und brauche ein VBA Code oder ähnliches: Ich habe ein Ordner mit ...

VB for Applications

Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren

Frage von MariaElenaVB for Applications2 Kommentare

Hallo, ich brauche eure Hilfe. Es wird eine CSV Datei durch einen Scanprozess erzeugt, und diese Datei enthält viele ...

Linux Tools

CSV-Daten zurechtbauen in ein Skript

gelöst Frage von Jens4everLinux Tools2 Kommentare

Moin zusammen, ich habe eine Datei "Datei", die so aufgebaut ist: (Geburtstag; Name; E-Mailadresse) Mit grep ziehe ich aus ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...