![Substitua a Linha, mas mantenha parte dela no Notepad++](https://rvso.com/image/1539542/Substitua%20a%20Linha%2C%20mas%20mantenha%20parte%20dela%20no%20Notepad%2B%2B.png)
Quero usar o Notepad++ para localizar/substituir grandes pedaços de código:
Eu tenho muitos:
ângulos[]={6,2744589,5,4066987,1,4066987};
com 3 valores. Preciso colocar todos os primeiros e segundos valores em 0 e manter o valor na terceira posição: S
ângulos[]={6,2744589,5,4066987,1,4066987};
para
ângulos[]={0,0,1.4066987};
Obrigado!
Responder1
Isso pode ser feito com uma pesquisa e substituição de regex (expressão regular) no Notepad++.
Encontrar:angles\[\]={\d+\.\d+,\d+\.\d+,(\d+\.\d+)};
Substituir com:angles[]={0,0,\1}
Observe que na expressão acima escapamos dos colchetes, daí a presença da barra invertida (), o terceiro grupo é um grupo de captura (entre parênteses). No final realizamos a substituição do primeiro e do segundo grupos, e o terceiro grupo é o valor original (referido como \1
: o valor capturado).
Estou anexando um exemplo de captura de tela.
Responder2
- Ctrl+H
- Encontre o que:
\bangles\[\]=\{\K[^,]+,[^,]+
- Substituir com:
0,0
- Replace all
Explicação:
\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
- Verifique a expressão regular
- NÃO VERIFIQUE
. matches newline
Resultado para determinado exemplo:
angles[]={0,0,1.4066987};