Supprimer les lignes vides dans le texte à l'aide de Visual Studio


Réponses:


174

Depuis Visual Studio 2012 a changé sa syntaxe d'expression régulière, les réponses originales d'Ala se traduisent par ce qui suit dans VS 2012:

Supprimer les lignes vides uniques

Vieux:

^:b*$\n

Nouveau:

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

Visual Studio 2013 (merci à BozoJoe et Joe Johnston):

^\s*$\n

Supprimer les doubles lignes vides

Vieux:

^:b*\n:b*\n

Nouveau:

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

Roule juste de ta langue.

Voici la feuille de conversion de MSDN.


13
vs2013: ^ \ s + $ \ n
BozoJoe

La réponse de BozoJoe, pour moi, a bien fonctionné dans VS2012 également (mise à jour 4)
BertuPG

5
^ \ s + $ \ n changé en ^ \ s * $ \ n autorise (sans contenu) des sauts de ligne purs.
Joe Johnston

4
Comment puis-je rendre cela automatisé, comme travailler avec CTRL + K + D?
ErTR

Est-ce que cela fonctionne pour les chaînes ou pour le code dans l'éditeur?
Kyle Delaney

114

C'est très utile surtout si vous souhaitez organiser ou comparer des codes, merci pour les personnes qui répondent à cette question, j'ai la réponse d' ici et j'aimerais la partager avec Stackoverflow:

Visual Studio a la capacité de supprimer des lignes vides lors de l'opération de remplacement à l'aide d'expressions régulières.

  • Cliquez Ctrl- H(remplacement rapide)

  • Cochez "Utiliser des expressions régulières"

  • Dans Rechercher, spécifiez ^$\n

  • Dans la case Remplacer, supprimez tout.

  • Cliquez sur "Tout remplacer"

Toutes les lignes vides seront supprimées.

L'expression régulière pour une ligne vide se compose de

Début de ligne ^

Fin de ligne $

Saut de ligne \n

Notez que normalement sous Windows une fin de ligne indiquée par 2 caractères - Retour chariot (CR, ASCII 13, \r) Saut de ligne (LF, ASCII 10, \n).

Une regex pour supprimer les lignes vides qui sont / ne sont pas vraiment vides (c'est-à-dire qu'elles ont / n'ont pas d'espaces): ^:b*$\n

Pour supprimer les doubles lignes: ^:b*\n:b*\nremplacez par:\n

* pour Visual Studio 2013 et supérieur: *

^\s*$\n

et pour les lignes doubles:

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

Voir les mises à jour de la syntaxe des expressions régulières pour VS2012 et plus dans la réponse de @ lennart ci-dessous


Fonctionne comme un charme avec le nettoyage du fichier XML dans Visual Studio 2015. Quelqu'un sait comment créer un raccourci pour l'exécuter?
Leszek P

1
pour Visual Studio 2012 et au-dessus, vérifiez la réponse ci
Alaa

1
Y a-t-il un moyen pour que cela fonctionne avec le formateur automatique?
Kyle Delaney

19

Dans Visual Studio 2013 (version 12.0.20623.01), j'ai supprimé les lignes vides avec cette expression régulière ^\r\nDans l'écran, vous pouvez voir les lignes correspondantes indiquées par les carrés bruns.

Visual Studio 2013 remplace les lignes vides


J'ai aussi essayé une telle manière, mais le studio visuel est resté figé pendant quelques minutes, puis n'a remplacé qu'une seule occurrence de plusieurs centaines que j'ai! lol :-D
BertuPG

17

Testé dans VS 2012 pour permettre des sauts de ligne purs.

^\s*$\n 

hth


2
cela fonctionne pour moi dans VS 2015, la réponse acceptée n'a malheureusement pas
EdwardM

Fonctionne également dans VS 2013.
Joe Johnston

2
Fonctionne bien dans VS 2017, la réponse acceptée ne fonctionne pas.
Germstorm

Fonctionne aussi en 2019
Joe Johnston

17

Utilisation de Visual Studio 2017 et supérieur

dans le document actuel

utiliser un raccourci

  • Ouvrez Outils > Options ou appuyez sur Alt+ T+O
  • Sous l' onglet Environnement > Clavier
  • Recherchez « DeleteBlank » et sélectionnezEdit.DeleteBlankLines
  • Ajouter un nouveau raccourci par exemple Ctrl+ D, Ctrl+E
  • Attribuer > OK

sélectionnez tout le texte et appuyez sur le raccourci

entrez la description de l'image ici


Cela ne supprime que la ou les lignes vierges sélectionnées ou de la ligne actuelle jusqu'à la prochaine ligne non vierge. Ce n'est pas pour l'ensemble du document ou du projet.
janvier

1
Essayez de sélectionner tout avant d'exécuter la commande, cela fonctionnera.
Kris Morness

9

Pour supprimer deux ou plusieurs lignes vides adjacentes avec VS2012, utilisez ceci:

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

Je cherchais une solution pour remplacer deux lignes vides en une seule. Ça marche pour moi. Merci!
Ricardo França

8

J'utilise Visual Studio 2017, aucune des solutions ci-dessus n'a fonctionné pour moi jusqu'à ce que j'essaye \n\r

Pas:

  1. Ctrl + H (ouvre rechercher et remplacer)
  2. Sélectionnez utiliser une expression régulière (Alt + E)
  3. Entrez \n\rdans l'entrée "Rechercher ..."
  4. Appuyez sur remplacer


2

Installez CodeMaid et appuyez également sur Ctrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D`). Vous pouvez nettoyer plus de fichiers à partir de l'Explorateur de solutions.


1

Dans VS 2012, la chaîne d'expression régulière à utiliser pour rechercher et remplacer toutes les lignes vides est ^ (? ([^ \ R \ n]) \ s) \ r? \ N


0

Ctrl+ K, Ctrl+ Dauto formate le document actuel et cela supprime l'espace inutile dans votre code. Cela aide à garder votre code lisible si c'est ce que vous recherchiez.


Je fais référence à mon problème, s'il vous plaît regardez, il regarde, c'est quelque chose que je cherchais. stackoverflow.com/questions/44747909/… .
Vivek Shukla le

1
Cela ne supprime pas les lignes vides doubles / redondantes.
janvier
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.