So löschen Sie Zeilen nach: Wenn der Wert in Notepad ++ oder Python> 5 ist

468
Vansy88

Ich hoffe, dass jemand helfen kann. Ich versuche, alle Zeichenfolgen zu löschen, die nach 5 Zeichen oder weniger Zeichen enthalten:

Zum Beispiel :

test:test test:test12 (would be the only line kept) cobra:abcd 

Ich habe versucht, es mit Notepad ++ stundenlang zu lösen, da ich gerade Python lerne. Ich stecke fest und schätze jede Hilfe.

0
Möchten Sie die ganzen Zeilen löschen oder nur das, was sich hinter dem Doppelpunkt befindet? Toto vor 6 Jahren 0

2 Antworten auf die Frage

3
Worthwelle

Verwenden Sie im Notepad ++ - Dialogfeld "Ersetzen" den regulären Ausdruck ^[^:]*:.$wie folgt:

Notepad ++ Dialog ersetzen

Dieser reguläre Ausdruck stimmt mit der ersten Instanz des :Zeichens überein und ignoriert alle später in der Zeichenfolge angezeigten Zeichen.

Wenn Sie die gesamte Zeile entfernen möchten:

  • Wenn Sie keine leeren Zeilen haben, verwenden Sie EditLine OperationsRemove Empty Lines.

  • Wenn Sie leere Zeilen haben, müssen Sie diese verwenden ^[^:]*:.\r?\n. Das funktioniert nicht in der letzten Zeile, da dies nicht die Zeilenumbrüche hat. Um dies zu verwenden, müssen Sie auch die . matches newlineOption neben dem Optionsfeld "Regulärer Ausdruck" aktivieren.

3
harrymc

Ich gehe davon aus, dass wir alle Zeichen nach :und bis zum Ende der Zeile zählen müssen.

Verwenden Sie den Dialog Suchen, Registerkarte Markieren, um alle mit dem regulären Ausdruck zu markieren:

:(.+) 

Dadurch werden alle Zeilen markiert, die Sie behalten möchten, wobei nach dem Zeichen mindestens 6 Zeichen stehen :. Überprüfen Sie visuell, dass kein Fehler vorliegt.

Verwenden Sie dann den Menüeintrag Suchen> Lesezeichen> Nicht markierte Zeilen entfernen .

Warum ist (. +) `besser als nur`. `? Máté Juhász vor 6 Jahren 1
@ MátéJuhász: Richtig - sie sind in diesem Fall gleichwertig. Ich habe '+' aus Gewohnheit verwendet, weil es gierig ist, aber das macht es hier unnötig. harrymc vor 6 Jahren 1