2010-06-30 31 views
105

Estoy tratando de reemplazar todos los #include "whatever.h" con #include <whatever.h> usando la funcionalidad de 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.Visual Studio, Buscar y reemplazar, expresiones regulares

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

Respuesta

168

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

Para las versiones de Visual Studio 2012 hasta &:
A partir de las expresiones regulares de .NET Framework VS2012 se utilizan. Entonces debe ser:
encontrar include "([a-zA-Z]+\.h)",
reemplazar con include <$1>.

+4

Esto parece diferir de la sintaxis de expresiones regulares estándar que usa paréntesis para esta funcionalidad. –

+2

Es diferente, pero bueno, no podemos cambiar eso ... – Miel

+34

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

Cuestiones relacionadas