Question

I am trying to replace a two letter state abbreviation with text then the abbreviation. Eventually I want to find and replace the rest. How do I capture the value found? .... I tried \1 and {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";

Update $1 does not work.

I am finding: [A-Z][A-Z] replacing with: if( usState == "$1

Was it helpful?

Solution

Oddly enough, Visual Studio Regular Expressions are different than normal .Net regular expressions. They have a slightly different syntax for tags and replaces. In order to tag a piece of text for later matching you must wrap it in braces {}. Then you can use \n in the replacement strings where n is the nth tagged expression. For your scenario here are the strings you should use

  • Find: {[A-Z][A-Z]}
  • Replace: if( usState == "\1")

OTHER TIPS

My regex matcher matches $1. Try that.

I might not have understood your problem, but why don't you record a temporary macro to do the transformation?

Enclose the [A-Z][A-Z] within parentheses, which captures it; then, use \1 in your replacement string to refer to the capture.

Since this questions seems to be a duplicate of https://stackoverflow.com/a/3147177/154480 but I found this one first: since Visual Studio 2012, you can use (pattern) and $1. As an example for this specific question, find ([A-Z]{2}) by if( usState == "$1")

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top