2010-10-02 17 views
5

Ho una soluzione di grandi dimensioni con molte linee che devo sostituire. In Visual Studio, è possibile cercare e sostituire con l'ausilio di espressioni regolari.Visual Studio 2008 cerca e sostituisce regex

voglio sostituire le righe come:

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

A:

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

Così mantenendo la parte di testo dinamico, che può variare.

E 'possibile e come?

Update, soluzione:
ricerca: {(. *)}. Rst.Fields Valore
Sostituire: prima \ 1.ToString()

Grazie JaredPar!

+0

Forse sì. Abbiamo bisogno di maggiori dettagli, però. Quali parti sono invarianti? Ad esempio, la parola "Comando" è invariante? O lo farai su base metodo per metodo? – codekaizen

+0

Ok, ho modificato il post con un esempio migliore. –

risposta

3

provare il seguente

  • Cerca Espressione: ASpecificCommand(\(.*\))\.ASpecificProperty
  • Sostituire Espressione: ATotallyDifferentCommand\1.ATotallyDifferentProperty

Nota: Questa non è una soluzione perfetta. Poiché ci sono ( coinvolti e quindi la corrispondenza di parenti annidati, una regex non sarà mai una soluzione perfetta. Tuttavia dovrebbe svolgere il lavoro per il modello specifico che hai postato

+3

Molto molto vicino, questo mi ha messo sulla strada giusta (usando le sottorappresentazioni nelle espressioni regolari). La soluzione ha bisogno di {} anziché di(). Grazie! –

2

La risposta e la soluzione a condizione utile nel fare un'operazione di ricerca sostituire il messageboxes.

questo ha funzionato in Visual Studio 2008 (VB .NET):

Esempio:

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

Trova:

MessageBox.Show{(.*,*)} 

Sostituire con:

Error.ShowError\1\2 

Risultati in:

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