Entfernen Sie leere Zeilen im Text mit Visual Studio


Antworten:


173

Da Visual Studio 2012 seine Regex-Syntax geändert hat, werden die ursprünglichen Antworten von Ala in VS 2012 wie folgt übersetzt:

Entfernen Sie einzelne Leerzeilen

Alt:

^:b*$\n

Neu:

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

Visual Studio 2013 (danke an BozoJoe und Joe Johnston):

^\s*$\n

Doppelte Leerzeilen entfernen

Alt:

^:b*\n:b*\n

Neu:

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

Rollt direkt von deiner Zunge.

Hier ist das Umrechnungsblatt von MSDN.


13
vs2013: ^ \ s + $ \ n
BozoJoe

BozoJoes Antwort funktionierte für mich auch in VS2012 gut (Update 4)
BertuPG

5
^ \ s + $ \ n wurde in ^ \ s * $ \ n geändert und ermöglicht (ohne Inhalt) reine Zeilenvorschübe.
Joe Johnston

4
Wie kann ich dies automatisieren, beispielsweise mit STRG + K + D?
ErTR

Soll dies für Zeichenfolgen oder für Code im Editor funktionieren?
Kyle Delaney

114

Es ist sehr nützlich, besonders wenn Sie Codes arrangieren oder vergleichen möchten. Vielen Dank für die Leute, die diese Frage beantworten. Ich habe die Antwort von hier Vielen und möchte sie mit Stackoverflow teilen:

Visual Studio kann leere Zeilen beim Ersetzen mit regulären Ausdrücken löschen.

  • Klicken Sie auf Ctrl- H(schnelles Ersetzen)

  • Kreuzen Sie "Reguläre Ausdrücke verwenden" an

  • In Suchen angeben ^$\n

  • Im Feld Ersetzen löschen Sie alles.

  • Klicken Sie auf "Alle ersetzen".

Alle Leerzeilen werden gelöscht.

Regulärer Ausdruck für leere Zeile besteht aus

Zeilenanfang ^

Ende der Linie $

Zeilenumbruch \n

Beachten Sie, dass normalerweise in Windows ein Zeilenende durch 2 Zeichen angezeigt wird - Zeilenvorschub (CR, ASCII 13, \r) Zeilenvorschub (LF, ASCII 10, \n).

Ein regulärer Ausdruck zum Entfernen von Leerzeilen, die nicht wirklich leer sind (dh keine Leerzeichen enthalten): ^:b*$\n

So entfernen Sie doppelte Linien: ^:b*\n:b*\nErsetzen Sie durch:\n

* für Visual Studio 2013 und höher: *

^\s*$\n

und für doppelte Zeilen:

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

Siehe die Syntaxaktualisierungen für reguläre Ausdrücke für VS2012 und höher in der Antwort von @ lennart unten


Funktioniert wie ein Zauber beim Bereinigen von XML-Dateien in Visual Studio 2015. Weiß jemand, wie man eine Verknüpfung erstellt, um dies auszuführen?
Leszek P

1
für Visual Studio 2012 und höher überprüfen Sie die Antwort unten
Alaa

1
Gibt es eine Möglichkeit, mit dem automatischen Formatierer zu arbeiten?
Kyle Delaney

19

In Visual Studio 2013 (Version 12.0.20623.01) habe ich mit diesem regulären Ausdruck leere Zeilen entfernt. ^\r\nAuf dem Bildschirm sehen Sie die übereinstimmenden Zeilen, die durch die braunen Quadrate angezeigt werden.

Visual Studio 2013 ersetzt Leerzeilen


Ich habe es auch so versucht, aber Visual Studio blieb einige Minuten eingefroren und ersetzte dann nur 1 Vorkommen von mehreren hundert, die ich habe! lol :-D
BertuPG

17

In VS 2012 getestet, um reine Zeilenvorschübe zu ermöglichen.

^\s*$\n 

hth


2
Dies funktioniert für mich in VS 2015, die akzeptierte Antwort hat leider nicht
EdwardM

Funktioniert auch in VS 2013.
Joe Johnston

2
Funktioniert gut in VS 2017, die akzeptierte Antwort nicht.
Germstorm

Funktioniert auch 2019
Joe Johnston

17

Verwenden von Visual Studio 2017 und höher

im aktuellen Dokument

Verwenden Sie die Verknüpfung

  • Öffnen Sie Extras > Optionen oder drücken Sie Alt+ T+O
  • Unter Umwelt tab> Tastatur
  • Suchen Sie nach " DeleteBlank " und wählen SieEdit.DeleteBlankLines
  • Fügen Sie eine neue Verknüpfung hinzu, z. B. Ctrl+ D, Ctrl+E
  • Zuweisen > OK

Wählen Sie den gesamten Text aus und klicken Sie auf die Verknüpfung

Geben Sie hier die Bildbeschreibung ein


Dadurch werden nur ausgewählte Leerzeilen oder von der aktuellen Zeile bis zur nächsten nicht leeren Zeile gelöscht. Es ist nicht für das gesamte Dokument oder Projekt.
Januar

1
Versuchen Sie, alle auszuwählen, bevor Sie den Befehl ausführen. Dann funktioniert es.
Kris Morness

9

Verwenden Sie Folgendes, um zwei oder mehr benachbarte leere Zeilen mit VS2012 zu entfernen:

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

Ich suchte nach einer Lösung, um zwei leere Zeilen in nur eine zu ersetzen. Für mich geht das. Vielen Dank!
Ricardo França

8

Ich benutze Visual Studio 2017, keines der oben genannten hat für mich funktioniert, bis ich es versucht habe \n\r

Schritte:

  1. Strg + H (öffnet Suchen und Ersetzen)
  2. Wählen Sie regulären Ausdruck verwenden (Alt + E)
  3. Geben \n\rSie den Eingang "Suchen ..." ein
  4. Drücken Sie auf Ersetzen


2

Installieren Sie CodeMaid und drücken Sie auchCtrl+M, Space' to clean up the code. (It formats the code, like Format Document Strg + E, D`. Sie können weitere Dateien im Projektmappen-Explorer bereinigen.


1

In VS 2012 lautet die Regex-Zeichenfolge zum Suchen und Ersetzen aller Leerzeilen ^ (? ([^ \ R \ n]) \ s) \ r? \ N.


0

Ctrl+ K, Ctrl+ Dformatiert das aktuelle Dokument automatisch und entfernt so unnötigen Speicherplatz in Ihrem Code. Es hilft, Ihren Code lesbar zu halten, wenn Sie danach suchen.


Ich beziehe mich auf mein Problem, bitte schauen Sie, es sieht aus, das ist etwas, wonach ich gesucht habe. stackoverflow.com/questions/44747909/… .
Vivek Shukla

1
Dadurch werden keine doppelten / neu redundanten Leerzeilen entfernt.
Jan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.