Visual Studio Trova e sostituisci variabili
-
03-07-2019 - |
Domanda
Sto cercando di sostituire un'abbreviazione di stato di due lettere con testo quindi l'abbreviazione. Alla fine voglio trovare e sostituire il resto. Come acquisisco il valore trovato? .... Ho provato \ 1 e {1}
AL 32.2679134368897 -86.5251510620117
AR 35.2315113544464 -92.2926173210144
AZ 33.3440766538127 -111.955985217148
CO 39.7098631425337 -104.899092934348
if( usState == "AZ") dpos= "33.4736704187888" + " " + "-112.043138087587";
if( usState == "CA") dpos= "36.0783581515733" + " " + " -119.868895584259";
if( usState == "CO") dpos= "39.8950788035537" + " " + " -104.831521872318";
if( usState == "CT") dpos= "41.6001570945562" + " " + " -72.6606015937273";
Aggiornamento $ 1 non funziona.
Sto trovando: [A-Z] [A-Z] sostituendo con: if (usState == " $ 1
Soluzione
Stranamente, le espressioni regolari di Visual Studio sono diverse dalle normali espressioni regolari .Net. Hanno una sintassi leggermente diversa per tag e sostituzioni. Per taggare un pezzo di testo per una successiva corrispondenza, devi racchiuderlo tra parentesi graffe {}. Quindi è possibile utilizzare \ n nelle stringhe di sostituzione in cui n è l'ennesima espressione con tag. Per il tuo scenario qui ci sono le stringhe che dovresti usare
- Trova:
{[A-Z[[A-Z×}
- Sostituisci:
if (usState == " \ 1 ")
Altri suggerimenti
Il mio abbinatore regex corrisponde a $ 1. Prova quello.
Potrei non aver capito il tuo problema, ma perché non registri una macro temporanea per eseguire la trasformazione?
Racchiudere [A-Z] [A-Z] tra parentesi, che lo cattura; quindi, usa \ 1 nella stringa di sostituzione per fare riferimento alla cattura.
Poiché questa domanda sembra essere un duplicato di https://stackoverflow.com/a/3147177/154480 ma L'ho trovato prima io: da Visual Studio 2012, puoi usare (pattern)
e $ 1
. Ad esempio per questa domanda specifica, trova ([A-Z] {2})
in if (usState == " $ 1 ")