![Zeile ersetzen, aber einen Teil davon in Notepad++ behalten](https://rvso.com/image/1539542/Zeile%20ersetzen%2C%20aber%20einen%20Teil%20davon%20in%20Notepad%2B%2B%20behalten.png)
Ich möchte Notepad++ verwenden, um große Codeblöcke zu suchen/ersetzen:
Ich habe viel von:
Winkel[]={6.2744589,5.4066987,1.4066987};
mit 3 Werten. Ich muss alle ersten und zweiten Werte auf 0 setzen und den Wert an der dritten Stelle behalten :S
Winkel[]={6.2744589,5.4066987,1.4066987};
Zu
Winkel[]={0,0,1.4066987};
Danke!
Antwort1
Dies kann mit einer Regex-Suche und -Ersetzung (regulärer Ausdruck) in Notepad++ erreicht werden.
Finden:angles\[\]={\d+\.\d+,\d+\.\d+,(\d+\.\d+)};
Ersetzen mit:angles[]={0,0,\1}
Beachten Sie, dass wir im obigen Ausdruck die Klammern umgehen, daher das Vorhandensein des Backslashs (); die dritte Gruppe ist eine Erfassungsgruppe (zwischen Klammern). Am Ende führen wir eine Ersetzung für die erste und zweite Gruppe durch, und die dritte Gruppe ist der ursprüngliche Wert (bezeichnet als \1
: der erfasste Wert).
Ich füge ein Beispiel-Screenshot an.
Antwort2
- Ctrl+H
- Finde was:
\bangles\[\]=\{\K[^,]+,[^,]+
- Ersetzen mit:
0,0
- Replace all
Erläuterung:
\b : word boundary, to be sure to match angles but not somethingangles
angles : literally angles
\[\]=\{ : literally []=, brackets have to be escaped as they have special meaning in regex
\K : Forget all we have seen until this point
[^,]+ : 1 or more any character that is not a comma, that matches also negative values
, : a comma
[^,]+ : 1 or more any character that is not a comma
- Überprüfen Sie den regulären Ausdruck
- NICHT PRÜFEN
. matches newline
Ergebnis für gegebenes Beispiel:
angles[]={0,0,1.4066987};