with visual studio regulares expresiones code and visual-studio visual-studio-2012 visual-studio-2013 visual-studio-2015 visual-studio-code

regulares - ¿Cómo se hace referencia a un grupo de captura con regex find y replace en Visual Studio 2012, 2013 y 2015?



visual studio 2017 replace regex (4)

Me doy cuenta de que hay un montón de preguntas sobre esto, pero ninguna que encontré específicamente hizo referencia a la versión VS a la que se refieren. Con esa información importante que falta, todavía no pude utilizar con éxito las respuestas que encontré. El más común era

  • Rodee con {}, muestre la captura con / 1, / 2, / n

Sin embargo, ese parece ser el método antiguo de hacer regex find y replace en Visual Studio, y no funciona en VS 2012.


Para agregar un ejemplo de esto, aquí hay algo que tenía que hacer en mi código:

Encontrar que:

_platformActions.InstallApp/((.+)/)

Reemplazar con:

this.Platform().App($1).Install()

Esto reemplaza cualquier llamada a InstallApp (x), con this.Platform (). App (x) .Install ().

* No olvide marcar "Usar expresiones regulares" en Opciones de búsqueda


Para buscar y reemplazar en VS 2012 y VS 2015, haga lo siguiente:

Ejemplo (gracias a syonip)

En las opciones de búsqueda, asegúrese de que ''usar expresiones regulares'' esté marcado y coloque lo siguiente como texto para buscar:

_platformActions.InstallApp/((.+)/)

Y el siguiente como el texto para reemplazarlo con:

this.Platform().App($1).Install()

Nota: Como señala SLaks en un comentario a continuación, el cambio en la sintaxis de expresiones regulares se debe al cambio de VS2012 al motor de expresiones regulares .Net estándar.

Nota: Otro comentarista señaló que esto también funciona en Visual Studio Code (vscode)


Para mejorar las respuestas anteriores: debe reemplazar

_platformActions.InstallApp/((.+)/)

con

this.Platform().App(${1}).Install()

Tenga en cuenta los $ {1} si alguna vez quiere agregar un número detrás de la captura. $18 intentará insertar la captura de búsqueda número 18, no la primera con un 8 agregado.


Si desea trabajar usando nombres de grupos (usando la misma muestra que la anterior):

Encontrar que:

_platformActions/.InstallApp/((?<mygroupname>.+)/)

Reemplazar con:

this.Platform().App(${mygroupename}).Install()