Substituir linha, mas manter parte dela no Notepad ++

0

Eu quero usar o Notepad ++ para encontrar / substituir grandes blocos de código:

Eu tenho muitos:

ângulos [] = {6,2744589,5,4066987,1,46066987};

com 3 valores. Eu preciso colocar todos os primeiro e segundo valores para 0 e manter o valor na terceira posição: S

ângulos [] = {6,2744589,5,4066987,1,46066987};

para

ângulos [] = {0,0,1.4066987};

Obrigado!

    
por Juan Adamuz 27.08.2017 / 02:23

2 respostas

2

  • Ctrl + H
  • Encontre o que: \bangles\[\]=\{\K[^,]+,[^,]+
  • Substituir por: 0,0
  • Substituir todos

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 o exemplo dado:

angles[]={0,0,1.4066987};
    
por 27.08.2017 / 09:45
1

Isso pode ser feito com uma pesquisa & regex (expressão regular) & substituir no Notepad ++.

Localizar: angles\[\]={\d+\.\d+,\d+\.\d+,(\d+\.\d+)};

Substitua por: angles[]={0,0,}

Note que na expressão acima nós escapamos dos colchetes, daí a presença da contrabarra (), o terceiro grupo é um grupo de captura (entre parênteses). No final, realizamos a substituição pelo primeiro e segundo grupos, e o terceiro grupo é o valor original (referido como : o valor capturado).

Estou anexando uma amostra de captura de tela.

    
por 27.08.2017 / 03:06