Regex zum Entfernen von Komma zwischen doppelten Anführungszeichen Notepad ++

7

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 21.04.2014, 20:38
quelle

3 Antworten

22

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.

    
zx81 21.04.2014, 20:43
quelle
3

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

    
Anand Sunderraman 02.10.2014 16:54
quelle
3

Versuchen Sie Folgendes

%Vor%

Dadurch wird das Komma zwischen Anführungszeichen

entfernt     
user4419275 03.03.2016 11:20
quelle

Tags und Links