在Visual Studio中搜索和替换

时间:2011-10-21 10:46:08

标签: regex visual-studio replace

在Visual Studio中,当我在选择内搜索时,我想使用正则表达式替换每行匹配的第一个实例(或第二个,第三个等)。我该怎么做?

搜索并替换

foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;

进入以下。

foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;

6 个答案:

答案 0 :(得分:71)

在Visual Studio 2012中,使用捕获组和反向引用,就像在C#中一样。您可以使用常用括号捕获它们,并使用$ 0,$ 1等反向引用它们。希望它有所帮助!

请注意,语法$1用于查找替换,但\1用于搜索字符串中的反向引用。

答案 1 :(得分:33)

Visual Studio 2010及更早版本中,使用带有反向引用的正则表达式

Visual Studio的正则表达式与我学到的完全不同。花了一些时间找出正确的答案。

搜索

{foo}{:d+} = \1\2

替换为

\1\2 = bar\2

后引用由tagging使用花括号{foo}完成。 :d+

\d+相同

Read more about VS RegEx here

答案 2 :(得分:2)

我也可以在没有正则表达式的情况下完成:

= foo替换为= bar

如果需要正则表达式,可以使用:

foo(\d*) = foo(\d*);

替换为:

foo\1 = bar\2;

答案 3 :(得分:2)

在Visual Studio 2019查找/替换中如此简单。 我需要将FORTRAN IO格式的字符串替换为C ++格式,并使用子表达式和正则表达式的编号。

示例:找到:“ f9.8”,“ f18.3”,并替换为%9.8f,%18.3f
             reg exp:Find =(f)(\ d +。\ d +)Replace =%$ 2f

答案 4 :(得分:1)

在这里,输入与此处显示的完全相同

搜索:(\w+\d+\s*=\s*)[^\d]+(\d+);

替换:$1bar$2;

了解详情:Using Regular Expressions in Visual Studio

答案 5 :(得分:-2)

如果你变化多了:

Regex.Replace(input, @"(?<=\= )[^;0-9]*(?=[0-9]*;)", replacewith);

搜索=(anynumber);并将其替换为。

修改 该号码是可选的。