Im Suchergebnisfenster von Notepad++ werden mehrzeilige Ergebnisse angezeigt

Im Suchergebnisfenster von Notepad++ werden mehrzeilige Ergebnisse angezeigt

Ich habe mit Notepad++ einen mehrzeiligen Such-Regex erstellt. Die Zeile beginnt mit INFO und endet mit einem bekannten Ziffernmuster. Wenn ich nach der Eingabe meines Regex auf „Suchen“ klicke, werden die richtigen Ergebnisse im Hauptfenster hervorgehoben.

Für meinen Anwendungsfall möchte ich find all in open documentsdenselben regulären Ausdruck verwenden. Das Problem ist, dass das Suchergebnisfenster dabei nur die erste Zeile der mehrzeiligen Übereinstimmung anzeigt. Um wirklich nützlich zu sein, muss die gesamte Übereinstimmung (die in meinem Fall fast immer aus zwei Zeilen besteht) im Suchergebnisfenster angezeigt werden. Ich möchte die Ausgabe des Suchergebnisbildschirms als Eingabe für einen anderen Prozess verwenden, der über den Rahmen dieser Frage hinausgeht.

Wie zeige ich also die gesamte mehrzeilige Übereinstimmung an? Ich kann mir vorstellen, wie das als Programm in einer Skript- oder Programmiersprache geht, aber wie kann ich das in Notepad++ tun?

Antwort1

Negative Antwort: Obwohl es durch Festlegen der Regex-Option „. entspricht Zeilenumbruch“ möglich ist, mehrere Zeilen in mehreren Dateien zu suchen und auszuwählen, wird im Fenster „Suchergebnisse“ nur die erste Zeile pro gefundenem Ergebnis aufgelistet.

Dieses Verhalten ist in Notepad++ eingebaut und kann nicht geändert werden. Ich habe mir auch die aufgelisteten Plugins angesehen und keines davon kann es ändern.

Sie können dies als Funktionsanforderung auf der Notepad++-Community, aber ich sehe keine unmittelbare Lösung für Ihr Problem.

Antwort2

Versuchen Sie Folgendes. Angenommen, Ihr Dokument beginnt mit dem Wort INFO und endet mit 999.

Ihr regulärer Ausdruck wäre:

INFO.+?999

Damit dies funktioniert mitMEHRZEILEN, im Suchfenster, direkt neben dem Häkchen für die VerwendungRegulären Ausdruckgibt es ein Kontrollkästchen mit der Aufschrift. entspricht einer neuen Zeile. Sie müssen es ausgewählt haben, damit es funktioniert.

ps Überprüft, ob es auf meinem Notepad++ Version 7.5.1 funktioniert

ps2 Die Suche gibt nur die 1. Zeile jedes Vorkommens zurück. Wenn Ihre Übereinstimmung also in Zeile 5 beginnt, aber in Zeile 10 endet, wird im Suchfenster angezeigt, dass sie in Zeile 5 beginnt. Sie können dieses Verhalten in der Anwendung nicht ändern.

Antwort3

Konnte das Problem in zwei Schritten lösen: erster Schritt:

  • mehrzeilig abgleichen
  • ersetzen Sie es durch einigemarkierenund nützliche Informationen behalten Zweiter Schritt:
  • "im Dokument suchen" = nach markierten Zeilen suchen [Bildbeschreibung hier eingeben][1]

[1]: siehe Arbeitsbeispielhttps://i.stack.imgur.com/ClQjU.png

Antwort4

Da ist einhackenMöglichkeit, dies zu erreichen.

  1. Gehen Sie im Suchdialogfeld zur Registerkarte „Markieren“.
  2. Klicken Sie auf Alle markieren
  3. Klicken Sie nun auf Markierten Text kopieren
  4. Öffnen Sie eine neue Registerkarte und fügen Sie den kopierten Text ein

Jetzt werden alle Zeilen aller Suchergebnisse angezeigt, allerdings nicht im Search resultsFenster. Ein weiterer Nachteil ist, dass dies nur mit dem aktuellen Dokument funktioniert und Ihre Anforderung Find All in All Opened Documentsnicht erfüllt wird.

Notepad+++ Suchen-Dialog: Markierten Text kopieren

Das folgende GIF zeigt die Durchführung dieser Schritte in einem Zookeeper-Protokoll (Verknüpfung).

Notepad++ mehrzeilige Suchausgabe

verwandte Informationen