Rimuovi le righe vuote nel testo usando Visual Studio


Risposte:


174

Da quando Visual Studio 2012 ha cambiato la sua sintassi regex, le risposte originali di Ala si traducono in VS 2012 nel modo seguente:

Rimuovi singole righe vuote

Vecchio:

^:b*$\n

Nuovo:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013 (grazie a BozoJoe e Joe Johnston):

^\s*$\n

Rimuovere le doppie righe vuote

Vecchio:

^:b*\n:b*\n

Nuovo:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Rotola dalla lingua.

Ecco il foglio di conversione da MSDN.


13
vs2013: ^ \ s + $ \ n
BozoJoe

La risposta di BozoJoe, per me, ha funzionato bene anche in VS2012 (Aggiornamento 4)
BertuPG,

5
^ \ s + $ \ n modificato in ^ \ s * $ \ n consente feed di riga puri (senza contenuto).
Joe Johnston,

4
Come posso renderlo automatizzato, come lavorare con CTRL + K + D?
ErTR,

Questo dovrebbe funzionare con stringhe o codice nell'editor?
Kyle Delaney,

114

È molto utile soprattutto se vuoi organizzare o confrontare i codici, grazie per le persone che rispondono a questa domanda, ho la risposta da qui e vorrei condividerla con StackOverflow:

Visual Studio ha la capacità di eliminare le righe vuote durante l'operazione di sostituzione usando espressioni regolari.

  • Clic Ctrl- H(sostituzione rapida)

  • Spuntare "Usa espressioni regolari"

  • In Trova specificare ^$\n

  • Nella casella Sostituisci elimina tutto.

  • Fai clic su "Sostituisci tutto"

Tutte le righe vuote verranno eliminate.

L'espressione regolare per la riga vuota è composta da

Inizio della riga ^

Fine linea $

Interruzione di linea \n

Si noti che normalmente in Windows un fine riga indicato da 2 caratteri - Ritorno a capo (CR, ASCII 13, \r) Avanzamento riga (LF, ASCII 10, \n).

Una regex per rimuovere le righe vuote che sono / non sono realmente vuote (cioè hanno / non hanno spazi): ^:b*$\n

Per rimuovere le doppie linee: ^:b*\n:b*\nsostituire con:\n

* per Visual Studio 2013 e versioni successive: *

^\s*$\n

e per le doppie linee:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Vedi gli aggiornamenti della sintassi delle espressioni regolari per VS2012 e superiori nella risposta di @lennart di seguito


Funziona come un incantesimo con la pulizia del file XML in Visual Studio 2015. Qualcuno sa come creare un collegamento per eseguire questo?
Leszek P

1
per Visual Studio 2012 e versioni successive controlla la risposta di seguito
Alaa,

1
C'è un modo per farlo funzionare con il formatter automatico?
Kyle Delaney,

19

In Visual Studio 2013 (Versione 12.0.20623.01) ho rimosso le righe vuote con questa espressione regolare ^\r\nNella schermata puoi vedere le linee abbinate indicate dai quadrati marroni.

Visual Studio 2013 sostituisce le righe vuote


Ho anche provato in questo modo, ma Visual Studio è rimasto bloccato per alcuni minuti e poi ho sostituito solo 1 occorrenza di diverse centinaia che ho! lol :-D
BertuPG

17

Testato in VS 2012 per consentire l'alimentazione di linea pura.

^\s*$\n 

hth


2
questo funziona per me in VS 2015, purtroppo la risposta accettata non è stata
EdwardM,

Funziona anche in VS 2013.
Joe Johnston,

2
Funziona bene in VS 2017, la risposta accettata no.
Germstorm,

Funziona anche nel 2019
Joe Johnston,

17

Utilizzando Visual Studio 2017 e versioni successive

nel documento corrente

usa scorciatoia

  • Apri Strumenti > Opzioni o premi Alt+ T+O
  • Nella scheda Ambiente > Tastiera
  • Cerca " DeleteBlank " e selezionareEdit.DeleteBlankLines
  • Aggiungi una nuova scorciatoia per esempio Ctrl+ D, Ctrl+E
  • Assegna > OK

seleziona tutto il testo e premi il collegamento

inserisci qui la descrizione dell'immagine


Ciò elimina solo le righe vuote selezionate o dalla riga corrente fino alla successiva riga non vuota. Non è per l'intero documento o progetto.
Gen

1
Prova a selezionare tutto prima di eseguire il comando, quindi funzionerà.
Kris Morness,

9

Per rimuovere due o più righe vuote adiacenti con VS2012 utilizzare questo:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n

Stavo cercando una soluzione per sostituire due righe vuote in una sola. Per me funziona. Grazie!
Ricardo França,

8

Sto usando Visual Studio 2017, nessuno dei precedenti ha funzionato per me fino a quando non ho provato \n\r

passi:

  1. Ctrl + H (apre trova e sostituisci)
  2. Seleziona usa espressione regolare (Alt + E)
  3. Entra \n\rnell'input "Trova ..."
  4. Premere sostituisci


2

Installa CodeMaid e premi anche Ctrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D`). È possibile ripulire più file da Esplora soluzioni.


1

In VS 2012, la stringa regex da utilizzare per trovare e sostituire tutte le righe vuote è ^ (? ([^ \ R \ n]) \ s) \ r? \ N


0

Ctrl+ K, Ctrl+ Dformatta automaticamente il documento corrente e rimuove lo spazio non necessario nel codice. Aiuta a mantenere il codice leggibile se quello che stavi cercando.


sto facendo riferimento al mio problema, per favore guarda, sembra, questo è qualcosa che stavo cercando. stackoverflow.com/questions/44747909/… .
Vivek Shukla,

1
Questo non rimuove le righe vuote doppie / ridondanti.
Gen
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.