Wie bringe ich einen lang andauernden Regex ab?

902
Greg

Bearbeiten: Während ich mich auf RegEx in meinem Hintergrund beziehe, suche ich nicht, dass Sie mein RegExp reparieren (danke, dass Sie es versucht haben) - vielmehr möchte ich wissen, " wie kann ich eine Suche / Ersetzung in NotePad ++ abbrechen? ".


Umgebung

Ich verwende die neueste Version von NPP (v.5.9.6.2) unter Windows 7 64-Bit

Hintergrund (aka "Das Problem")

Gelegentlich verwende ich NPP, um Textstücke zu bearbeiten, und meistens verwende ich reguläre Ausdrücke während dieses Prozesses. Obwohl es keine Kritik am Produkt gibt (wie kann es sein?), Erlaubt Notepad ++ mir dumme Dinge, die sich nicht so verhalten, wie ich es mir vorgestellt habe. In diesem Fall hatte ich eine lange Liste von Werten, die ich in Anführungszeichen setzen wollte. Ich trat in einen versehentlich aggressiven Ausdruck ein und verursachte eine unendliche Schleife.

Der Grund für die Schleife ist unerheblich und ist nicht der Punkt meiner Frage - ich habe diesen Fehler mehr als einmal gemacht - ich weiß, dass es nicht funktioniert, aber ich vergesse und Monate später werde ich dasselbe wieder tun.

Das Problem ist, dass, wenn NotePad ++ in diese Endlosschleife eintritt, um den Imposeble zu vollenden, ich effektiv von allen nicht gesicherten Dokumenten gesperrt und gezwungen werde, den NPP-Prozess zu beenden.

Frage

Ich kann nichts finden, das in der Hilfe oder im NPP-Forum dokumentiert ist, aber weiß jemand, wie ich eine Suche abbrechen und ersetzen kann, wie in dem zuvor genannten Szenario. So kann ich meinen Fehler und vieles mehr aufgeben wichtig, speichern Sie alle meine anderen Dokumente?

5
Haben Sie versucht, `\ $` durch `` `zu ersetzen? vor 11 Jahren 0
Vielen Dank für Ihre Antwort und Entschuldigung, falls aus meiner Frage nicht ganz klar ist, dass "$" dazu gedacht war, das Ende der Zeile zu finden und dort ein Anführungszeichen zu setzen (anstatt nach einem expliziten Dollar-Zeichen zu suchen und dieses zu ersetzen mit Zitat). Auf jeden Fall ist es die Fähigkeit, die Suche abzubrechen, die ich wirklich suche :) vor 11 Jahren 0
Nun, es gibt immer ein Ende der Zeichenkette / Datei, da Sie nicht darüber hinausgehen können. Dies könnte ein Problem sein, warum Sie eine Endlosschleife erleben. Ich habe kein NPP installiert, aber ... wie wäre es, \ b (? = $) `Durch` `` zu ersetzen? vor 11 Jahren 1
In vielen RegEx-Versionen funktioniert '/^(.*?)$/ `durch`' '$ 1' '``. Hast du das probiert? vor 11 Jahren 0
Normalerweise mache ich einfach \ r \ n anstelle von $ und es funktioniert einwandfrei. Burnzy vor 11 Jahren 0
Jungs - Ich weiß es zu schätzen, dass Sie alle die RegEx-Ausgabe durchgesehen haben, aber das ist wirklich nur der Hintergrund, warum ich die Suche abbrechen möchte. Ich kann NPP dazu bringen, zu tun, was ich will, aber wenn ich einen Fehler mache, muss ich mich davon erholen können und darin liegt meine Frage. (Frage bearbeitet) vor 11 Jahren 0
@Greg - Wenn Sie eine unendlich reguläre Regex-Schleife ausführen, können Sie sie nicht stoppen. Wenn eine solche "stop" -Funktion in der regex-Ausführung implementiert würde, wäre regex selbst sehr langsam, da die Benutzereingaben während der Ausführung überprüft werden müssten, also ... Sie können nicht alles haben ... vor 11 Jahren 0
Ich habe dafür gestimmt, diese Frage zu schließen, weil ich denke, dass dies ein Thema von StackOverflow ist und vielleicht besser für SuperUser geeignet ist. Unabhängig davon denke ich, dass Ihre Frage eher eine Anfrage an den KKW-Autor sein sollte: Machen Sie lange laufende (Regex) Suchvorgänge abbrechen splash vor 11 Jahren 0
@splash Ok guter Punkt auf SU gegen SO, denke ich. Als Randbemerkung war mein Punkt jedoch, dass ich nicht wusste, * ob * es möglich war. Wenn ich sicher war, dass es sich nicht um eine unterstützte Funktion handelt, handelt es sich in der Tat um eine eindeutige Funktionsanforderung und nicht um einen Hilferuf;) vor 11 Jahren 0
Re: close vote, ich sehe das Argument für "Off topic" wie in @splash, verstehe aber nicht, wer das für "Nicht konstruktiv" hält ...! Egal - ich bin überzeugt, dass dies eine nicht unterstützte Funktion von NPP ist, und ich hätte auf jeden Fall nach SU fragen sollen :) vor 11 Jahren 0

1 Antwort auf die Frage

1
splash

Nur aus purem Zufall bin ich heute über das AnalysePlugin im Plugin Manager-Fenster von NPP gestolpert und in seinem Kommentar zum letzten Update heißt es:

Funktion: Bitte warten Sie Popup, damit der Benutzer lange Suchvorgänge und eine Statusleiste abbrechen kann

Dies ist nicht genau das, wonach Sie fragen (Suchen UND Ersetzen), aber es kann hilfreich sein, wenn Sie nur lange suchen.

In Erwartung eines Tests markiere ich diese Antwort. Großartiger find @splash. Greg vor 11 Jahren 0
Eigentlich hast du recht, es ist nicht ganz mein Ziel (ich war etwas zu aufgeregt als es gerade war!), Aber es ist trotzdem nützlich. Ich habe auch noch nie wirklich NPP-Plugins erforscht, also hast du mir gerade eine völlig neue Welt des "Wow-Looks" eröffnet;) Greg vor 11 Jahren 1