So löschen Sie eine Zeile zwischen zwei Zeilen, die einem bestimmten Muster in Notepad ++ entsprechen

0

Eingabe meiner Datei ist:

bsg23
< Hi James
ab89n
> Hi Jamy
nd87a
< What about weekend?
90hsg
> What about sat/sun?

und die Ausgabe sollte kommen:

< Hi James
> Hi Jamy
< What about weekend?
> What about sat/sun?

Bedeutet das Löschen des Inhalts der Zeile vor '>' und '<'.

Kann jemand helfen. Danke im Voraus.

Legende
quelle

Antworten:

1

In Notepad ++ 6.9.1 konnte ich dies tun, indem ich Search-> Replace ... auswählte und den folgenden regulären Ausdruck in das Feld "Find what:" einfügte:

(^[^<>\n]+)\n|\n[^<>\n]+

Lassen Sie dann das Feld "Ersetzen durch:" leer und legen Sie einen Suchmodus für "Regulärer Ausdruck" fest, lassen Sie ".matched newline" deaktiviert und drücken Sie "Alle ersetzen".

Wie es funktioniert

(^[^<>\n]+)\n|\n[^<>\n]+ist ein regulärer Ausdruck für Notepad ++ .

(^[^<>\n]+)\nIst ein Unterausdruck, der mit Zeilen übereinstimmt, die nicht mit <oder beginnen >. Dies entspricht der ersten Textzeile in Ihrer Beispieleingabe "bsg23".

| Zeigt den Wechsel zwischen zwei Unterausdrücken an

\n[^<>\n]+Spiele eine neue Zeile von Zeichen folgen , die nicht sind <, >oder ein Zeilenumbruch. Dies entspricht den Zeilenumbrüchen am Ende der Zeilen, die mit <oder beginnen, >und dem folgenden Text in der nächsten Zeile.

Michael Warner
quelle