Reemplace Línea pero mantenga parte de ella en Notepad ++

Reemplace Línea pero mantenga parte de ella en Notepad ++

Quiero usar Notepad++ para buscar/reemplazar grandes fragmentos de código:

Tengo muchos:

ángulos[]={6.2744589,5.4066987,1.4066987};

con 3 valores. Necesito poner todos los valores primero y segundo en 0 y mantener el valor en la tercera posición: S

ángulos[]={6.2744589,5.4066987,1.4066987};

a

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

¡Gracias!

Respuesta1

Esto se puede lograr con una búsqueda y reemplazo de expresiones regulares (expresión regular) en Notepad++.

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

Reemplazar con:angles[]={0,0,\1}

Tenga en cuenta que en la expresión anterior escapamos de los corchetes, de ahí la presencia de la barra invertida (), el tercer grupo es un grupo de captura (entre paréntesis). Al final, realizamos la sustitución para el primer y segundo grupo, y el tercer grupo es el valor original (denominado \1: el valor capturado).

Adjunto una muestra de captura de pantalla.

Reemplazo de expresiones regulares de Notepad ++

Respuesta2

  • Ctrl+H
  • Encontrar que:\bangles\[\]=\{\K[^,]+,[^,]+
  • Reemplazar con:0,0
  • Replace all

Explicación:

\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
  • comprobar la expresión regular
  • NO VERIFICAR. matches newline

Resultado para el ejemplo dado:

angles[]={0,0,1.4066987};

información relacionada