多线查找和;在Visual Studio中替换

时间:2010-02-16 14:10:14

标签: visual-studio ide replace multiline

可以吗?我们正在使用VS2005和VS2008以及VS2010。

我不是指正则表达式 - 它们有它们的位置 - 但是普通的旧文本找到&更换。我知道我们可以使用\ n标签使用正则表达式(在紧要关头),但不要纠结于正则表达式转义字符,还有可读性问题。

如果无法做到,人们使用的是简单(简单)(免费)替代方案吗?这并不涉及敲响我们自己的宏。

9 个答案:

答案 0 :(得分:65)

我终于找到了它..

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

它至少在内置宏的Visual Studio 2008中工作。 :)

步骤:
1)选择要查找的文本 2)按“Alt + F8”或打开“工具 - >宏 - >宏浏览器”
3)双击“Sample - > Utilities - > FindLine”。 (它将打开查找框,并在“查找”字段中加载您的选择。不要担心“查找”字段中显示的截断文本。相信我,字段拥有一切......显示它的MS方式可能是......: ))
4)单击“查找和替换”对话框中的“快速替换”按钮。输入您的替换文字。
5)根据您的要求点击3个按钮中的任何一个......并完成它。 :)

Hurray ..它的工作..可能不是一个直接的方式来做到这一点,但你知道MS ...没有什么是直截了当的简单.. :)

答案 1 :(得分:18)

您可能需要查看此博客条目:

Multiline Search and Replace in Visual Studio

提供宏代码以逃避搜索并显示VS查找和替换对话框。

答案 2 :(得分:14)

今天在Visual Studio 2012中有效:

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

了解(.*\n)+?部分如何跨多行进行匹配,非贪婪 fooPatternToStart在您的起始行上是一些正则表达式模式,而barPatternToEnd是您在下面另一行上找到的模式,可能在下面有很多行......

找到示例here

简单有效:)

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

答案 3 :(得分:12)

您可以通过单击“查找和替换”对话框中的“使用正则表达式”复选框来搜索多行表达式。然后,\n表示换行符。

enter image description here

答案 4 :(得分:6)

答案 5 :(得分:1)

您还可以打开UltraEdit完全支持MultiLine替换的文件。 如果您只打算使用一次,则可以使用试用版。

答案 6 :(得分:1)

关于Andrew Corkery的评论2011年8月19日上午9:52:

如果您还想指定多行替换字符串,请编辑宏代码并设置替换文本,如下所示。 这样您就可以通过所需的小修改来“微调”替换。

 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

答案 7 :(得分:1)

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

它仅使用正则表达式。但对于那些不了解正则表达式的人来说,更好地使用它。

答案 8 :(得分:0)

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