88

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

我不是指正则表达式——它们有它们的位置——而是普通的旧文本查找和替换。我知道我们可以(在紧要关头)使用 \n 标记使用正则表达式来做到这一点,但不希望与正则表达式转义字符纠缠在一起,而且还有一个可读性问题。

如果做不到,人们使用什么简单(免费)的替代方案?这不涉及敲我们自己的宏。

4

9 回答 9

65

我终于找到了。。

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

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

步骤:
1) 选择要查找的文本。
2) 按“Alt+F8”或打开“工具 -> 宏 -> 宏资源管理器”
3) 双击“示例 -> 实用程序 -> FindLine”。(它将打开“查找”字段中加载您的选择的“查找”框。不要担心“查找”字段中显示的截断文本。相信我,字段拥有一切......MS显示它的方式可能是......: ) )
4) 单击“查找和替换”对话框中的“快速替换”按钮。输入替换为文本。
5)然后根据您的要求单击 3 个按钮中的任何一个……然后就完成了。:)

万岁.. 它的工作.. 可能不是一个直接的方法,但你知道 MS .. 没有什么是简单易行的.. :)

于 2010-06-08T10:49:30.593 回答
27

这适用于今天的 Visual Studio 2012:

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

查看(.*\n)+?零件如何跨多行匹配,非贪婪。
fooPatternToStart是你的开始行上的一些正则表达式模式,而barPatternToEnd你的模式是在下面的另一行上找到的,可能是下面的很多行......

示例在这里找到。

简单有效:)

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

于 2013-01-18T14:36:21.003 回答
20

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

Visual Studio 中的多行搜索和替换

提供宏代码来转义搜索并显示 VS 查找和替换对话框。

于 2010-02-18T10:15:19.507 回答
18

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

在此处输入图像描述

于 2012-08-23T03:14:28.393 回答
10

我用这个: Visual Studio Gallery 多行搜索和替换

于 2014-11-10T16:04:14.940 回答
2

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

它只使用正则表达式。但是对于那些不了解正则表达式的人来说最好使用它。

于 2015-03-26T10:39:48.913 回答
1

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

于 2012-01-20T08:45:11.967 回答
1

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

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

 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
于 2013-02-14T14:05:51.740 回答
1

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

于 2015-09-22T22:24:46.820 回答