Ich versuche, Kommas in Anführungszeichen aus einer CSV-Datei in Notepad ++ zu entfernen, das ist, was ich habe:
%Vor%und ich brauche das:
%Vor%Ich versuche, Notepad find / replace Option mit einem reg exp zu verwenden. Muster. Ich habe alle möglichen Kombinationen ausprobiert, habe es aber nicht geschafft :( Die Datei enthält 1 Million Zeilen.
Nach dem ganzen Heute bin ich nicht mehr sicher, ob eine einfache Regex das kann? Vielleicht sollte ich mit einem Skript ... Python gehen?
mrki, das wird tun, was Sie wollen (getestet in N ++):
Suche: ("[^",]+),([^"]+")
Ersetzen: oder
Wie funktioniert das? Die ersten Klammern erfassen den Anfang der Zeichenfolge bis (aber nicht) das Komma in Gruppe 1. Die zweite Klammer erfasst das Ende der Zeichenfolge nach dem Komma in Gruppe 2. Die Ersetzung ersetzt die Zeichenfolge durch eine Verkettung von Gruppe 1 und Gruppe 2.
Genauer gesagt: In den ersten Klammern stimmen wir die öffnenden doppelten Anführungszeichen mit einer beliebigen Anzahl von Zeichen ab, die kein Komma sind. Das ist die Bedeutung von [^,]+
. In den zweiten Klammern passen wir eine beliebige Anzahl von Zeichen an, die kein Doppelzitat sind, mit [^"]+
, dann die schließenden doppelten Anführungszeichen.
Nur ein Update für die brillante Lösung von @ zx81. Sagen wir, Sie haben 2 Kommata zwischen Anführungszeichen
Dann muss die Regex-Suche wie folgt geändert werden:
%Vor%Ersetzen muss als
geändert werden %Vor%Also ändern Sie es abhängig von der Anzahl der Kommas.
Ich habe versucht zu erkunden, ob rekursive Regex möglich ist, aber das scheint jetzt nicht möglich zu sein
Versuchen Sie Folgendes
%Vor%Dadurch wird das Komma zwischen Anführungszeichen
entfernt