/ / In Notepad ++, come si sostituiscono tutte le istanze di un determinato carattere dopo l'istanza XTH PER LINE? - regex, notepad ++

In Notepad ++, come si sostituiscono tutte le istanze di un determinato carattere dopo l'istanza XTH PER LINE? - regex, notepad ++

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 № 1

Il 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.