2009-05-01 132 views
3

我试图用文本替换一个两字母状态缩写然后缩写。 最终我想找到并替换其余的。我如何捕获找到的值? ....我试过\ 1和{1}Visual Studio查找和替换变量

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"; 

更新 $ 1不起作用。

我发现:[AZ] [AZ] 与替代:如果(usState ==“$ 1

回答

6

奇怪的是,Visual Studio Regu lar表达式与普通的.Net正则表达式不同。他们对标签和替换语法略有不同。为了标记一段文字以便以后匹配,您必须将其包装在大括号{}中。然后,您可以在替换字符串中使用\ n,其中n是第n个标记的表达式。对于您的情况这里的字符串,你应该使用

  • 查找:{[A-Z][A-Z]}
  • 替换:if(usState == "\1")
+0

工作就像一个魅力。谢谢。 – Bryan 2009-05-01 16:16:18

2

我的正则表达式匹配匹配$ 1尝试是

0

括起来[AZ] [AZ]然后,在您的替换字符串中使用\ 1来指代捕获。

1

我可能没有理解您的问题,但为什么不记录临时宏来完成转换?

相关问题