在Visual Studio中搜索和替换

Jos*_*ech 27 regex replace visual-studio

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

搜索和替换

foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;
Run Code Online (Sandbox Code Playgroud)

进入以下.

foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;
Run Code Online (Sandbox Code Playgroud)

So *_*ins 71

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

请注意,该语法$1用于find-replace,但\1用于搜索字符串中的反向引用.

  • 我即将得出结论,从Visual Studio 2012中删除了反向引用,直到我读到这个答案.在官方文档中没有提到它http://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx (2认同)
  • Huzzah在VS 2012中获得正确的正则表达式!这太棒了! (2认同)

Ran*_*ray 33

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

Visual Studio的正则表达式与我学到的完全不同.花了我一些时间来弄清楚正确的答案.

搜索

{foo}{:d+} = \1\2
Run Code Online (Sandbox Code Playgroud)

用...来代替

\1\2 = bar\2
Run Code Online (Sandbox Code Playgroud)

后引用是通过tagging花括号完成的{foo}.:d+是一样的\d+

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

  • 在VS2013中,这根本不起作用.我必须用round()替换卷曲{}并且它可以工作. (7认同)