在Visual Studio中多行查找和replace

可以这样做吗? 我们正在使用VS2005和VS2008和VS2010。

我不是指正则expression式 – 它们有自己的位置 – 而是简单的旧文本查找和replace。 我知道我们可以用正则expression式(使用\ n标签)来做到这一点,但是不要纠结在正则expression式转义字符中,而且还有一个可读性问题。

如果不能做什么简单和简单(免费)的替代scheme是人们使用? 这不涉及敲我们自己的macros。

我终于find了..

无需下载和加载任何外部macros。

它至less在Visual Studio 2008中使用内置的macros。 🙂

脚步 :
1)select你想要找的文字。
2)按“Alt + F8”或打开“工具 – >macros – >macros浏览器”
3)双击“Sample – > Utilities – > FindLine”。 (它会打开查找框,您的select加载在“查找”字段。不要担心截断的文本显示在“查找”字段。相信我,字段有这一切..MS的方式来显示它可能是…: ))
4)点击“查找和replace”对话框中的“快速replace”button。 input你的replace文字。
5)并点击3button中的任何一个按照您的要求…并完成。 🙂

Hurray ..它的工作..可能不是一个简单的方法来做到这一点,但你知道与MS ..没有什么是简单和容易.. 🙂

你可能想看看这个博客条目:

在Visual Studio中进行多行search和replace

提供macros代码来逃避您的search并显示VS查找和replace对话框。

今天在Visual Studio 2012中有效:

fooPatternToStart.*(.*\n)+?.*barPatternToEnd 

看看(.*\n)+? 部分是跨越多行匹配的,非贪婪的。
fooPatternToStart是你的起始线上的一些正则expression式模式,而barPatternToEnd是你的模式,可以find下面的另一行,可能下面的许多行…

例子在这里find。

简单有效:)

注意: VS2012 之前 ,工作的模式是: fooPatternToStart.(.\n)+@.*barPatternToEnd

您可以通过单击“查找和replace”对话框中的“使用正则expression式”checkbox来search多行expression式。 换行符由\n表示。

在这里输入图像说明

我使用这个: Visual Studio库多行search和replace

您也可以使用完全支持MultiLinereplace的UltraEdit来打开文件。 如果您只打算使用一次,您可以使用试用版。

关于安德鲁Corkery 2011年8月19日在9:52上面的评论:

如果您还想指定多行replacestring,请编辑macros代码并设置replace文本,如下所示。 这将允许您只需要进行小的修改即可“微调”您的更换。

  Sub FindLine() Dim textSelection As TextSelection textSelection = DTE.ActiveDocument.Selection textSelection.CharLeft(True) DTE.ExecuteCommand("Edit.Find") DTE.Find.FindWhat = textSelection.Text 'also preset replacement text with current selection DTE.Find.ReplaceWith = textSelection.Text End Sub 

它仅由微软提供。 请检查https://visualstudiogallery.msdn.microsoft.com/699CE302-B0D4-4083-BE0E-1682E873CEBF

它只使用正则expression式。 但是对于那些不了解正则expression式的人来说,更好使用它。

Notepad ++的最新版本(截至本文发布)可以进行多行查找/replace。 当问到这个问题时,我不知道这是否是真实的。 但是在Visual Studio中不再有macros的支持,现在这是相关的。