Visual Studio查找和替换变量

7

我想替换两个字母的州缩写为文本,然后是该缩写。最终我想查找和替换其余部分。如何捕获找到的值?...我尝试使用\1和{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";

更新 $1 无法工作。

我正在查找:[A-Z][A-Z] 用以下内容替换:if( usState == "$1

5个回答

7

奇怪的是,Visual Studio正则表达式与普通的.Net正则表达式不同。它们在标签和替换方面有稍微不同的语法。为了将一段文本标记为以后匹配,必须将其用大括号{}括起来。然后,在替换字符串中,您可以使用\n,其中n是第n个标记的表达式。对于您的场景,这里是您应该使用的字符串

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

4

我的正则表达式匹配器可以匹配 $1。你可以试试。


1

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


1
自从Visual Studio 2012以来,您可以使用(pattern)和$1。作为这个特定问题的一个例子,通过if(usState == "$1")查找([A-Z]{2})。由于这个问题似乎是https://dev59.com/mHA75IYBdhLWcg3ws7ci#3147177的重复,但我先发现了这个问题。

0

将[A-Z][A-Z]用括号括起来,以捕获它;然后,在替换字符串中使用\1引用该捕获。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接