我终于找到了它...
没有必要下载和加载任何外部宏。
至少在 Visual Studio 2008 中,使用内置的宏功能是有效的。 :)
步骤:
好耶...它很有效。这可能不是一种直接的方法,但是您知道微软,没有什么是简单直接的..:)
这在 Visual Studio 2012 中是可行的:
fooPatternToStart.*(.*\n)+?.*barPatternToEnd
观察这个(.*\n)+?
部分如何进行跨多行、非贪婪匹配。
fooPatternToStart
是你的起始行上的某个正则表达式模式,而barPatternToEnd
是你要在另一行下面找到的模式,可能会有很多行...
示例在此处找到。
简单而有效 :)
注意:在VS2012之前,可用的模式为:fooPatternToStart.(.\n)+@.*barPatternToEnd
在“查找和替换”对话框中,单击“使用正则表达式”复选框,即可搜索多行表达式。换行符由\n
表示。
\n
更改为\r\n
。 - James McCormack此工具仅由微软提供。请查看多行搜索和替换。
此工具仅使用正则表达式,但对于不熟悉正则表达式的人来说,使用它会更好。
截至本篇发布时,Notepad++ 的最新版本支持多行查找/替换。由于 Visual Studio 不再支持宏,因此现在这一功能显得更为重要。
如果您想指定一个多行替换字符串,编辑宏代码并按下面所示设置替换文本。 这将允许您通过仅进行必要的小修改来“微调”替换。
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