Lösche alle Zeilen, die (nicht) mit einem regulären Ausdruck übereinstimmen, mit Notepad ++
Wie lösche ich alle Zeilen, die mit einem regulären Ausdruck in Notepad ++ übereinstimmen oder nicht?
In Vim würde ich Folgendes tun, um alle übereinstimmenden Zeilen zu löschen:
:g/regex/d
Und um alle nicht passenden Zeilen zu löschen:
:!g/regex/d
Ich suche das Äquivalent dieser Befehle in Notepad ++.
Wie auch unter " Notepad ++ - löscht alle Zeilen mit einem bestimmten Text ", Ich gehe normalerweise so vor, dass die übereinstimmenden Zeilen ausgeblendet und die Leerzeilen anschließend gelöscht werden. Gibt es einen einfacheren Weg?
As perdiese Antwort, Versionen von Notepad ++> = 6.0 unterstützen übereinstimmende Zeilenumbrüche in regulären Ausdrücken, sodass ganze Zeilen direkt gelöscht werden können, ohne zuerst leere Zeilen zu erstellen. Das folgende Muster sollte alle Zeilen entfernen, die "foobar" enthalten, wenn sie durch eine leere Zeichenfolge ersetzt werden:
^.*foobar.*\r\n
Now, wie in "Regularer Ausdruck für eine Zeile, die kein Wort enthält? ", reguläre Ausdrücke zu negieren ist nicht gerade einfach. Das Löschen von Zeilen in Notepad ++, die keine" foobar "enthalten, würde folgendes Muster erfordern:
^((?!foobar).)*\r\n
Da es ein ziemlich komplizierter Befehl ist, nur Zeilen zu entfernen, die kein Wort (oder möglicherweise einen komplexeren Ausdruck) enthalten, frage ich mich, ob es eine einfachere Lösung gibt.