Ho un CSV che sto cercando di formattare, ma i dati di input hanno molte virgole all'inizio. Sarebbe molto più facile se potessi semplicemente sostituire tutte le virgole su una data riga (DOPO la 4a) con un punto e virgola.
Esiste comunque la possibilità di fare ciò usando una semplice regex di ricerca / sostituzione o la programmazione è necessaria?
risposte:
3 per risposta № 1Il modo più semplice (dal momento che le regex di Notepad ++ non supportano le asserzioni di lookbehind a lunghezza variabile) per affrontare questo è probabilmente farlo in tre passaggi:
Innanzitutto, modifica le prime quattro virgole in qualcosa di unico: Cerca
^([^,]*),([^,]*),([^,]*),([^,]*),
e sostituire con 1#COMMA#2#COMMA#3#COMMA#4#COMMA#
.
Quindi, sostituisci tutte le virgole con punto e virgola.
Infine, sostituisci tutto #COMMA#
s con virgole.
Ciò presuppone che tutte le righe con virgole abbiano almeno quattro di esse.
1 per risposta № 2
Dovresti essere in grado di farlo con una regex in find / replace. Prova quanto segue in Notepad ++:
Find what: ([^,]*),([^,]*),([^,]*),([^,]*),
Replace with: 1,2,3,4;
Non dimenticare di selezionare il pulsante di opzione Espressione regolare.