2010-10-02 5 views
5

J'ai une grande solution avec beaucoup de lignes que je dois remplacer. Dans Visual Studio, vous pouvez rechercher et remplacer à l'aide d'expressions régulières.Visual Studio 2008 rechercher et remplacer regex

Je veux remplacer les lignes comme:

rst.Fields("CustomerName").Value 
rst.Fields("Address").Value 
rst.Fields("Invoice").Value 

Pour:

row("CustomerName").ToString() 
row("Address").ToString() 
row("Invoice").ToString() 

Ainsi en gardant la partie de texte dynamique, qui peut varier.

Est-ce possible et comment?

Mise à jour, solution:
recherche: {(. *)}. Rst.Fields Valeur
Remplacer: première \ 1.ToString()

Merci JaredPar!

+0

Peut-être, oui. Nous avons besoin de plus de détails, cependant. Quelles parties sont invariantes? Par exemple, le mot "Command" est-il invariant? Ou allez-vous le faire méthode par méthode? – codekaizen

+0

Ok, édité le poste avec un meilleur exemple. –

Répondre

3

Effectuez les opérations suivantes

  • Recherche Expression: ASpecificCommand(\(.*\))\.ASpecificProperty
  • Remplacer Expression: ATotallyDifferentCommand\1.ATotallyDifferentProperty

Note: Ce n'est pas une solution parfaite. Comme il y a ( impliqués et donc la correspondance des parens imbriqués, une regex ne sera jamais une solution parfaite. Cependant, il devrait faire le travail pour le motif spécifique que vous avez posté

+3

Très très proche, cela m'a mis sur la bonne voie (en utilisant des références arrières dans les expressions régulières). La solution a besoin de {} au lieu de(). Merci! –

2

La réponse et la solution fournies sont utiles pour faire une recherche-remplacement sur les boîtes de message.

Cela a fonctionné dans Visual Studio 2008 (VB .NET):

Exemple:

MessageBox.Show("Invalid Entry","Error") 

Trouver Quoi:

MessageBox.Show{(.*,*)} 

Remplacer par:

Error.ShowError\1\2 

Résultats dans:

Error.ShowError("Invalid Entry","Error")