Notepad++ – Wie kann ich (zeilenweise) nach einem bestimmten Zeichen (in der besagten Zeile) suchen?

Notepad++ – Wie kann ich (zeilenweise) nach einem bestimmten Zeichen (in der besagten Zeile) suchen?

Ich habe mehrere Zeilen, die aussehen wie

\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code

Ich möchte in jeder Zeile den Code von [bis {durch meinen eigenen Code ersetzen.

  • \nodesteht immer am Anfang jeder Zeile.

  • {Istnichtam Ende der Zeile.

Ich habe (hier) bereits Dinge wie ^\\node.*\{oder gefunden und ausprobiert \\node.*\{, aber beide führen zum gleichen unbefriedigenden Ergebnis: Der gesamte Code bis zum allerletzten Punkt {im Dokument wird markiert.

Antwort1

Eigentlich ist es völlig in Ordnung, Wraparound zu aktivieren. Ich empfehle Ihnen sogar, dies zu tun.

Da das Fragment garantiert am Anfang der Zeile steht, können Sie einen Caret- ^Anker () verwenden.

Folgendes funktioniert bei mir:

Suchen: ^\\node\[[^{]*\{; Ersetzen durch:\\node[test{

Der ^Anker befindet sich am Zeilenanfang. \\node\[Stimmt mit dem Text überein \node[, nachdem Sonderzeichen maskiert wurden. [^{]*Erfasst alle Zeichen außer einer öffnenden Klammer. (Beachten Sie, dass hier {kein Escapezeichen erforderlich ist, da es sich um eine Zeichenklasse handelt.) \{Erfasst dann die öffnende Klammer selbst.


Wenn ... Some code here ... kann Klammern enthalten:

Suchen: ^\\node\[.*\{([^{]*)$; Ersetzen durch:\\node[test{$1

Der erste Teil ist derselbe. Dann .*werden so viele Zeichen wie möglich abgeglichen. \{stimmt mit einer öffnenden Klammer überein, dann ([^{]*)$werden alle Zeichen bis zum Zeilenende abgeglichen und erfasst. Da [^{]angegeben ist, werden keine öffnenden Klammern abgeglichen, daher \{muss das Vorherige mit dem Letzten in der Zeile übereinstimmen {.

Antwort2

Verwenden Sie im Dialogfeld „Suchen/Ersetzen“ die Option „Suchen nach“:Knoten[.*{und ersetzen durch:Knoten [Test {ersetzt erfolgreich...Hier ein bisschen Code...mitprüfenin jeder Zeile.

Sie müssen die folgenden Optionen angeben:

  • Aktivieren Sie NICHT das Kontrollkästchen "Wrap around"
  • Setzen Sie ein Häkchen bei „Regulärer Ausdruck“
  • Aktivieren Sie NICHT das Kontrollkästchen ". matches newline" Bildbeschreibung hier eingeben

verwandte Informationen