web-dev-qa-db-fra.com

Rechercher et remplacer dans Visual Studio

Dans Visual Studio, lorsque je recherche dans une sélection, je souhaite remplacer la première instance (ou la deuxième, la troisième, etc.) d'une correspondance par ligne à l'aide d'expressions régulières. Comment je ferais ça?

Rechercher et remplacer

foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;

dans ce qui suit.

foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;
27
Joseph Le Brech

Dans Visual Studio 2010 et versions antérieures, utilisez des expressions régulières avec des références en arrière

Les expressions régulières de Visual Studio sont complètement différentes de ce que j'ai appris. Il m'a fallu du temps pour trouver la bonne réponse.

Rechercher

{foo}{:d+} = \1\2

Remplacer par

\1\2 = bar\2

Les références arrières sont effectuées par tagging avec des accolades {foo}. :d+ est le même pour \d+

En savoir plus sur VS RegEx ici

33
Ranhiru Cooray

Dans Visual Studio 2012, les groupes de capture et les références arrière sont utilisés comme en C #. Vous pouvez les capturer avec des parenthèses communes et les renvoyer avec 0 $, 1 $, etc. J'espère que cela vous aidera!

Notez que la syntaxe $1 est utilisée pour find-replace, mais \1 pour les références arrières dans la chaîne de recherche.

71
So Many Goblins

Je peux aussi le faire sans expression régulière:

Remplacez = foo par = bar.

Si une expression régulière est nécessaire, vous pouvez utiliser:

foo(\d*) = foo(\d*);

Remplacer par:

foo\1 = bar\2;
2
Jayendra

Le voici, tapez exactement comme il est affiché ici

Rechercher: (\w+\d+\s*=\s*)[^\d]+(\d+);

Remplacer: $1bar$2;


En savoir plus: Utilisation d'expressions régulières dans Visual Studio

1
BJovke