Notepad++ Suchen und Ersetzen: Begriffe ausschließen

Nightmare85

Captain
Registriert
Apr. 2007
Beiträge
3.664
Hallo,

ich möchte mithilfe von regulären Ausdrücken aus
Code:
-- 02. Strg+C
02. Strg+C
ein
Code:
--02. Strg+C
  LCTRL+C
machen.

Hab es geschafft, die Kommentare auszuschließen:
!--(.*)

Jetzt möchte ich beides kombinieren, scheitere jedoch.
Es müsste sowas wie:
Suchen nach: !--(.*) UND (.*) Strg
Ersetzen durch: LCTRL

sein.

Hab es auch mit &, Komma, Semikolon etc. probiert
Bei den vielen Tabellen und Ausdrücken finde ich gerade den Wald vor lauter Bäumen nicht. :o
Danke für jede Hilfe.

Grüße
 
Kannst ja mal das versuchen:

(\n\s*[^-(2)].*)Strg\+C

Ersetzen mit
\1LCTRL+C
 
Hi,

also das scheint zu funktionieren.
Eine kleine Optimierung wäre:
Suchen: (\n\s*[^-(2)].*)Strg
Ersetzen mit: LCTRL
(statt +C kann ja auch mal +V usw. stehen - und die 02. brauche ich im Code ja auch nicht.)

Allerdings scheint es Probleme zu geben, wenn ich einen Begriff ändern will,
der nach dem Strg kommt.
In diesem Fall klappt es nicht, wenn ich aus Shift ein LSHIFT machen will.
Code:
--01. Strg+Shift+Pfeil nach rechts
  Strg+Shift+Pfeil nach rechts

Was genau bedeutet (\n\s*[^-(2)].*)?
\n müsste Zeilenumbruch sein.

Ist in diesem Code auch ein Nicht vorhanden?

Grüße
 
\n Zeilenumbruch
\s* beliebig viele Whitespaces (also z.B. Leerzeichen)
[] Auswahl eines der Zeichen
^ Negierung
() In Puffer schieben

Gesamt: Suche nach dem Zeilenumbruch eine Zeile, die nicht mit -- (ich denke, daß ist deine Kommentarerkennung) beginnt und schiebe sie in den Puffer 1
 
Ok, das geht schon mal deutlich in die richtige Richtung! :)
Danke schon mal!

Code:
--01. Strg+Shift+Pfeil nach rechts
  LCTRL+LSHIFT+RIGHT
--02. Strg+C
  LCTRL+C
--03. Strg+Bild nach unten
  LCTRL+PAGEDOWN
--04. Menütaste
  APPKEY

Das habe ich einfach mittels
Suchen: (\n\s*[^-(2)].*)ALT
Ersetzen: \1NEU
hinbekommen.
(Natürlich mit mehrmaligem Suchen und Ersetzen, aber das ist nicht schlimm, da ich dies als Makro realisieren würde.)

Nur noch 1 kleine Frage:
Wie verklickere ich Notepad++, dass es einzelne Buchstaben von Wörtern unterscheidet?
Oder sich nur auf ganze Wörter bezieht?
Es gibt zwar die Option "Nur ganze Wörter suchen", aber die ist grau, wenn man im regulären Modus ist.

Wenn ich z.B. zuerst aus Komma ein COMMA mache, wird aus Numkomma automatisch ein NumCOMMA.
Code:
--01. Numkomma
01. Numkomma
--02. Komma
02. Komma

Klar könnte ich zuerst aus Numkomma ein NUMPERIOD machen und danach aus Komma ein COMMA.
Lieber wäre mir jedoch, wenn ich alle gesuchten Wörter auch als echte Wörter kennzeichnen kann.
Dann passiert es nicht, dass teile von Wörtern mit ersetzt werden.

P.S. Kommt auch mal vor, dass ich einzelne Buchstaben ändern muss. Z.B. aus Ü ein LBRACKET

Grüße
 
Zu deinem ersten Beispiel:

^[^--](.*)Strg

spricht, alles was am Zeilenanfang (^) nicht "--" ist (das Dach ^ in eckigen Klammern negiert).

Deine Komma- bzw. Wort-Frage hängt davon ab, wie "Worte" bei dir definiert sind. Meistens mit Leerzeichen, die kann man mit "\s" abfragen. Der Suchstring wäre

\sKomma

Und wie immer Wikipedia ist dein Freund :) : https://de.wikipedia.org/wiki/Regulärer_Ausdruck
(ich weiß, reguläre Ausdrücke sind manchmal Hexenwerk :evillol:)
 
Zurück
Oben