Visual Studio, Buscar y reemplazar, regex


143

Estoy tratando de reemplazar todo #include "whatever.h"con el #include <whatever.h>uso de la función buscar y reemplazar en Visual Studio 2005. Usé la expresión regular \#include \"[a-z\.h]+\"para encontrar la declaración de inclusión. Pero me pregunto cómo enmarcar la regex de reemplazo.

\#include \<[a-z\.h]+\>no funcionó y no lo hará; reemplaza la declaración #include "whatever.h"con #include <[a-z.h]+>. ¿Cómo debo enmarcar la regex de reemplazo para whatever.hque quede como está?

Respuestas:


225

Para versiones anteriores a Visual Studio 2012:
funciona cuando hago esto:
buscar include "{[a-zA-Z]+\.h}",
reemplazar con include <\1>.
Las partes más relevantes para su pregunta son las llaves {}y la referencia posterior \1: \nreferencias al enésimo grupo indicado por llaves en la expresión de búsqueda.

Para las versiones de Visual Studio 2012 y posteriores: a
partir de VS2012 .NET Framework, se utilizan expresiones regulares. Entonces debería estar:
buscar include "([a-zA-Z]+\.h)",
reemplazar con include <$1>.


55
Esto parece diferir de la sintaxis de expresiones regulares estándar que utiliza paréntesis para esta funcionalidad.
Goblin Alchemist

44
Ahora es diferente en Visual Studio 2012. Se debe usar $ 1 en lugar de \ 1. () ahora reemplaza a {}. Más consistente con todos los demás ahora. msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx
oillio

1
Use [a-zA-Z0-9_]para capturar más nombres de archivo.
Reinier Torenbeek

1

Debe seleccionar Coincidir mayúsculas y minúsculas para expresiones regulares con mayúsculas y minúsculas. De lo contrario [az] no funcionará.ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.