2009-05-01 7 views
3

Ich versuche, eine Zwei-Buchstaben-Zustandsabkürzung durch Text dann die Abkürzung zu ersetzen. Schließlich möchte ich den Rest finden und ersetzen. Wie erfasse ich den gefundenen Wert? .... Ich habe versucht, \ 1 und {1}Visual Studio Suchen und Ersetzen von Variablen

AL 32.2679134368897 -86.5251510620117 
AR 35.2315113544464 -92.144 
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"; 

aktualisieren $ 1 funktioniert nicht.

Ich finde: [AZ] [AZ] ersetzen mit:.. If (US State == „$ 1

Antwort

6

Seltsamerweise Visual Studio Regu Ausdrücke sind anders als normale .Net reguläre Ausdrücke. Sie haben eine etwas andere Syntax für Tags und ersetzen. Um einen Textabschnitt für den späteren Abgleich zu markieren, müssen Sie ihn in geschweifte Klammern {} einfügen. Dann können Sie \ n in den Ersetzungszeichenfolgen verwenden, wobei n der n-te markierte Ausdruck ist. Für Ihr Szenario hier sind die Saiten Sie

  • Suche verwenden sollten: {[A-Z][A-Z]}
  • ersetzen: if(usState == "\1")
+0

wie ein Charme. Vielen Dank. – Bryan

2

Meine Regex Matcher Spiele 1 $ bereite

0

Schließen Sie das [AZ] [AZ] in Klammern, die es erfasst, dann verwenden Sie \ 1 in Ihrer Ersetzungszeichenfolge, um auf das Capture zu verweisen.

1

Ich habe Ihr Problem möglicherweise nicht verstanden, aber warum zeichnen Sie kein temporäres Makro auf, um die Umwandlung durchzuführen?