Sostituisci nuove righe con un delimitatore di virgola con Notepad ++?


165

Ho una domanda su Notepad ++.

Come posso prendere le seguenti parole in Notepad ++ (che si trova su righe diverse)

Apples
Apricots
Pear
Avocados
Bananas

E trasformarli in un paragrafo con una virgola alla fine di ognuno? Come questo:

Apples, Apricots, Pear, Avocados, Bananas

Risposte:


325

Apri la finestra di dialogo Trova e sostituisci (premi CTRL+ H).

Quindi seleziona Regular expressionnella sezione "Modalità di ricerca" in basso.

Nel Find whatcampo inserisci questo:[\r\n]+

Nel Replace with:

C'è uno spazio dopo la virgola.

Questo sostituirà anche linee come

Apples

Apricots
Pear

Avocados
Bananas

Dove ci sono linee vuote.

Se le tue linee hanno spazi vuoti finali, devi prima rimuoverli. Il modo più semplice per raggiungere questo obiettivo è

EDIT -> Blank Operations -> Trim Trailing Space

O

TextFX -> TextFX Edit -> Trim trailing spaces

Assicurati di impostare la modalità di ricerca su "Espressione regolare".


Se ci sono spazi finali sulla linea che potresti desiderare _*[\r\n]+. Per gestire le righe vuote trasformate in virgole in eccesso è possibile eseguire una ricerca di espressioni regolari ,_[,_]+e sostituirle ,_. In alternativa, il pacchetto TextFx ha un comando di eliminazione di righe vuote che può essere utilizzato prima di aggiungere le virgole. (Nota: modifica i trattini
bassi

si hai ragione. Stavo solo cercando di dare una risposta minimalista. Forse dovrei modificare la risposta allora.

2
Questo non funziona per me: vedo che "0 occorrenze sono state sostituite".
Iain Samuel McLean Elder il

3
@IainElder, la modalità di ricerca deve essere impostata su "Espressione regolare" anziché "Normale" o "Estesa".
Scott Lawrence,

Ho avuto lo stesso risultato di Iain.
dhochee,

34

Ecco cosa ha funzionato per me con un elenco simile di stringhe in Notepad ++ senza macro o altro:

  1. Fai clic su Modifica -> Operazioni vuote -> EOL per spaziare [Tutti gli elementi dovrebbero ora essere in una sola riga separata da uno 'spazio']

  2. Seleziona uno 'spazio' ed esegui un Sostituisci tutto (con ',')


Semplice ed elegante, bello
reggaeguitar

@trishul Davvero bello.
himanshupareek66,

32

La risposta di fapDaddy usando una macro mi ha indicato la giusta direzione.

Ecco esattamente cosa ha funzionato per me.

  1. Posiziona il cursore dopo il primo elemento di dati. inserisci qui la descrizione dell'immagine

  2. Fai clic su "Macro> Avvia registrazione" nel menu. inserisci qui la descrizione dell'immagine

  3. Tipo questa sequenza: Comma, Space, Delete, End.inserisci qui la descrizione dell'immagine

  4. Fai clic su "Macro> Interrompi registrazione" nel menu. inserisci qui la descrizione dell'immagine

  5. Fai clic su "Macro> Esegui macro più volte ..." nel menu. inserisci qui la descrizione dell'immagine

  6. Fai clic su "Esegui fino alla fine del file" e fai clic su "Esegui". inserisci qui la descrizione dell'immagine

  7. Rimuovi tutti i caratteri finali. inserisci qui la descrizione dell'immagine

  8. Fatto!

inserisci qui la descrizione dell'immagine


5
Questo metodo è lento per migliaia di elementi di dati.
Iain Samuel McLean Elder il

Bella risposta. Grazie :)
Peter T.

Una così grande informazione, sarà utile in molte situazioni simili. Grazie!
Moin,

Grazie per aver condiviso le informazioni. È interessante.
Ironman,

4

Per Notepad ++ 5.9

  1. Premi Ctrl + H
  2. Seleziona la modalità di ricerca Esteso (\ n, \ r, \ t, \ o, \ x ...)
  3. Inserisci Trova cosa: \ r \ n
  4. Inserisci Sostituire con: ,
  5. Replace_All dovrebbe ottenere il risultato richiesto.

3
Questa risposta ripete la risposta accettata e questa risposta si riferisce a una versione antica di Notepad ++, la versione 7.4.x è ora disponibile. Benvenuto in Stack Overflow, ma ti preghiamo di farti fornire nuove informazioni o fornire nuove informazioni. Ripetere le risposte esistenti non è utile.
AdrianHHH,

Per le versioni più recenti di npp questo è il modo migliore per farlo.
nurdyguy,

Questa è la risposta più semplice Non dovrei andare in modalità Espressione regolare solo per sostituire le nuove righe con virgole. N ++ in realtà funziona correttamente mentre altri editor interpretano "\ n" come un ritorno a capo AND feed di riga, che all'inizio mi ha confuso.
BrianVPS,

3

Posiziona il cursore dopo Mele , nella scheda Macro , seleziona Avvia registrazione . Digitare il carattere virgola ( , ), spazio () e premere il tasto Fine , nella scheda Macro, selezionare Interrompi registrazione .

Ctrl + Maiusc + P per riproduzione singola.


Grazie per quel suggerimento. Cosa succede se ho 5000 + + parole? Devo eseguire la macro per tutti singolarmente? C'è un metodo più semplice?
user2231530

Se in futuro dovrai svolgere attività simili, potresti voler scrivere uno script per questo. La via d'uscita facile è probabilmente andare alla scheda Macro e selezionare eseguire la macro più volte. Sarà fatto in pochi secondi.
viclim

+1 La tua risposta mi ha indicato la giusta direzione. Nella mia risposta ho documentato esattamente cosa ha funzionato per me.
Iain Samuel McLean Elder il

2

Questo può sembrare strano ma puoi rimuovere la riga successiva copiando l'intero testo e incollandolo nella barra di ricerca di Firefox, quindi incollandolo nuovamente in Blocco note ++

passo 1

passo 2


1
Per favore, migliora questa risposta. I collegamenti alle immagini non saranno utili.
Ha

2

USA la barra di ricerca di Chrome

1-pressione CTRL F
2-incolla il testo copiato nella barra di ricerca
3-pressione CTRL Aseguito da CTRL Cper copiare nuovamente il testo dalla ricerca
4-incolla in Blocco note ++
5-sostituisci 'space'con','

1 clic per l'immagine
2 clic per l'immagine


0

È possibile utilizzare la riga cc.rnl ', 'di comando di ConyEdit (un plug-in) per sostituire nuove righe con i contenuti desiderati.


0

Un incontro regex con \s+lavorato per me:

inserisci qui la descrizione dell'immagine


A proposito: mi sembra che una partita regex $^dovrebbe funzionare, ma invece corrisponde ^$.
user3673

L'uso dell'opzione "Estesa" proprio sopra l'opzione "Espressione regolare" (nella schermata) è in realtà il modo più semplice per ottenere questo risultato.
nurdyguy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.