繁体   English   中英

在Visual Studio中搜索和替换

[英]Search and replace in Visual Studio

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

搜索并替换

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

进入以下。

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

在Visual Studio 2012中,捕获组和反向引用的用法与C#中的用法相同。 您可以使用通用括号捕获它们,并使用$ 0,$ 1等向后引用它们。希望对您有所帮助!

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

Visual Studio 2010和更早版本中 ,将正则表达式与反向引用一起使用

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

搜索

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

用。。。来代替

\1\2 = bar\2

通过使用大括号{foo}进行tagging来完成后向引用。 :d+\\d+相同

在此处阅读有关VS RegEx的更多信息

在这里,完全按照此处显示的方式键入

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

替换: $1bar$2;


阅读更多: 在Visual Studio中使用正则表达式

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

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

我也可以不用正则表达式来完成:

= bar替换= foo

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

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

用。。。来代替:

foo\1 = bar\2;

如果您的变量更大:

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

此搜索=(anynumber); 并在两者之间替换。

编辑:该数字是可选的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM