Visual Studio 查找和替换变量
-
03-07-2019 - |
题
我正在尝试用文本替换两个字母的状态缩写,然后用缩写替换。最终我想找到并替换其余的。如何捕获发现的值?....我尝试了 \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不起作用。
我发现:AZ] [AZ]代替:if( usState == "$1
解决方案
奇怪的是,Visual Studio 正则表达式与普通的 .Net 正则表达式不同。它们的标签和替换语法略有不同。为了标记一段文本以便以后匹配,您必须将其括在大括号 {} 中。然后您可以在替换字符串中使用 ,其中 n 是第 n 个标记表达式。对于您的场景,这里是您应该使用的字符串
- 寻找:
{[A-Z][A-Z]}
- 代替:
if( usState == "\1")
其他提示
我的正则表达式匹配1美元。试试吧。
我可能没有理解你的问题,但为什么不记录临时宏来进行转换?
将[A-Z] [A-Z]括在括号内,并将其捕获;然后,在替换字符串中使用\ 1来引用捕获。
由于此问题似乎与 https://stackoverflow.com/a/3147177/154480 重复,但我首先发现了这个:从Visual Studio 2012开始,您可以使用(模式)
和 $ 1
。作为此特定问题的示例,请通过查找
([A-Z] {2})
if(usState ==" $ 1")
不隶属于 StackOverflow