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()