web-dev-qa-db-fra.com

Visual Studio, Rechercher et remplacer, regex

J'essaie de remplacer tous les #include "whatever.h" avec #include <whatever.h> en utilisant la fonctionnalité de recherche et remplacement dans Visual Studio 2005. J'ai utilisé l'expression régulière \#include \"[a-z\.h]+\" pour trouver l'instruction include. Mais je me demande comment cadrer la regex de remplacement.

\#include \<[a-z\.h]+\> n'a pas fonctionné et ne fonctionnera pas; il remplace l'instruction #include "whatever.h" avec #include <[a-z.h]+>. Comment dois-je cadrer la regex de remplacement pour conserver whatever.h tel quel?

130
bdhar

Pour les versions antérieures à Visual studio 2012:
Cela fonctionne quand je fais ceci:
trouver include "{[a-zA-Z]+\.h}",
remplace par include <\1>.
Les parties les plus pertinentes de votre question sont les accolades {} Et la référence arrière \1: \n Des références au nième groupe indiqué par des accolades. dans l'expression de recherche.

Pour les versions Visual Studio 2012 et suivantes:
À partir de VS2012, les expressions régulières .NET Framework sont utilisées. Alors ça devrait être:
find include "([a-zA-Z]+\.h)",
remplace par include <$1>.

209
Miel