NotePad ++ - Warum funktioniert das Finden von ^ nicht?

16

Ich versuche, mich von TextPad zu entfernen , und kann keine regulären Ausdrücke wie " ^und" erhalten $, die ersetzt werden müssen. Ich habe definitiv das Kästchen für reguläre Ausdrücke angekreuzt.

Was mache ich falsch?

Ich versuche den Anfang einer neuen Zeile zu finden. In TextPad wird nach '^' gesucht und sichergestellt, dass reguläre Ausdrücke aktiviert sind. Mit Notepad ++ geht das nicht. Es heißt nur "Nicht gefunden".

Jack Kada
quelle
Ich habe TextPad verwendet und fand dasselbe Problem (gelinde gesagt) ärgerlich . Grundsätzlich ist Npp die Regex Funktionalität verkümmert , wenn comared zu den meisten anderen Regex-s. Dies liegt an der Tatsache, dass Npp eine Abstraktion des Scintilla-Editors ist, der einen einzeiligen RegEx verwendet (Ein Zeit- und Ressourcenproblem). $ funktioniert, aber sie müssen (noch) nicht mehrzeilig arbeiten. Ich kenne diese Einschränkung und arbeite mit (und erhebe sie). Wie unten erwähnt funktioniert ^ (.) (Ich greife selten auf TPad oder UltraEdit zurück)
Peter.O
1
PS. Sie können Extended (vs RegEx ) oft als Workaround für \ r und \ n verwenden - dies ahmt einen Zeilenanfang nach. Übrigens können Sie auch in der normalen Suche bleiben und Ansicht - Symbol anzeigen - Zeilenende anzeigen aktivieren. Sie werden jedoch (visuell) nicht im Feld Suchen angezeigt, wenn Sie dies auswählen CRLF Zuerst wird das Suchfeld automatisch aktiviert, wenn Sie STRG + F drücken, und die Suche wird glücklicherweise zu einer mehrzeiligen Suche (aber nicht zu einer RegEx-Suche). Es ist nicht viel anders als bei der erweiterten Suche, aber ich fand es interessant, und einige Leser mögen es auch so finden. (Ich liebe Npp :)
Peter.O
Warum genau versuchen Sie, den Anfang einer neuen Zeile zu finden? Möchten Sie am Anfang jeder Zeile etwas hinzufügen? Das würde uns helfen, die Frage tatsächlich zu beantworten. Wenn Sie Notepad ++ verwenden, um sich von einer kostenpflichtigen Lösung zu entfernen, müssen Sie deren Besonderheiten kennen lernen und sie umgehen. Ich hatte kein Problem damit, da Notepad ++ in vielerlei Hinsicht sehr gut ist.
Joshua Nurczyk

Antworten:

25

^ Und $ sind beide Anker in Regex, die Mittel , wenn Sie die wörtliche Zeichen ersetzen möchten ^und $Sie müssen sie entkommen, in der Regel mit einem führenden Backslash ( \^und \$).

Um das erste Zeichen in einer Zeile zu finden, verwenden Sie ^.

Der Startlinienanker ( ^) ist eine Übereinstimmung mit der Breite Null. Kombinieren Sie ihn also mit dem. findet ein beliebiges Zeichen am Anfang einer Zeile.

Vielleicht kannst du erklären, was du eigentlich versuchst zu tun?

John Weldon
quelle
8

Weil dies Sonderzeichen sind, die das vordere ( ^) und das Ende der Zeile ( $) darstellen. Versuchen Sie, sie mit a zu entkommen \.

Beispiele:

"Cat" am Anfang der Zeile suchen:

^Cat

Gib "Cat" am Ende der Zeile ein:

Cat$

Finde "Katze" als einziges Element in einer Zeile:

^Cat$

Ordnen Sie "$ 100" in einer Zeile zu:

\$100 

Hier finden Sie einen Link zu den Einzelheiten zum Abgleichen regulärer Ausdrücke in Notepad ++.

RC.
quelle
2
Die Verbindung scheint (effektiv) unterbrochen zu sein.
Peter Mortensen
5

Ich selbst hatte das gleiche Problem. Nach einigem Ausprobieren können Sie dasselbe erreichen, indem Sie folgendermaßen vorgehen:

Suchen: ^ (.)

Ersetzen: [die Zeichenfolge, die Sie einfügen möchten] \ 1

Suchen und markieren Sie das erste Zeichen der Zeile, geben Sie die neue Zeichenfolge ein und setzen Sie das markierte Zeichen dahinter.

Zum Beispiel musste ich am Anfang jeder Zeile ein einfaches Anführungszeichen einfügen:

Finden: ^ (.)

Ersetzen: '\ 1

Sie können dasselbe für das Ende der Zeile tun, indem Sie Folgendes tun:

Finden: (.) $

Ersetzen Sie: \ 1 * [die Zeichenfolge, die Sie anhängen möchten] *

Willy
quelle
1

Hier ist, wie es geht ...

Vor:

$_GET['id']; $_GET['nick'];

Nach:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

So. Auf das Suchfeld setzen:

$_GET(.*])

Auf das Ersetzungsfeld setzen:

htmlentities($_GET\1)
Lue
quelle
0

Das Problem scheint jetzt behoben worden zu sein.

In Notepad ++ v6.9.2 (läuft unter Windows 7) bekomme ich sowohl ^(Zeilenanfang) als auch $(Zeilenende) zum Laufen .

Elias Mossholm
quelle