Visual Studio中的多行查找和替换

50pmv0ei  于 2022-12-23  发布在  其他
关注(0)|答案(8)|浏览(504)

能做到吗?我们用的是VS2005、VS2008和VS2010。
我不是指正则表达式(它们有自己的位置),而是指普通的旧文本查找和替换。我知道我们可以使用 \n 标记对正则表达式进行查找和替换(在必要时),但我们不希望纠缠于正则表达式转义字符,另外还有可读性问题。
如果不能做到,人们会用什么简单明了的(免费的)替代品呢?这不包括敲我们自己的宏。

p8h8hvxi

p8h8hvxi1#

我终于找到了...
不需要下载和加载任何外部宏。
它在Visual Studio 2008中至少可以使用内置宏。:)
步骤:
1.选择要查找的文本。
1.按Alt + F8或打开"工具-〉宏-〉宏资源管理器"
1.双击 * Sample * → * Utilities * → * FindLine *。(它将打开 * Find * 框,并在"Find"(查找)字段中加载您的选择。不要担心"Find"(查找)字段中显示的截断文本。相信我,该字段包含所有内容... Microsoft显示它的方式可能是...:)
1.单击"查找和替换"对话框中的"快速替换"按钮。输入要替换的文本。
1.并 * 点击 * 任何三个按钮,根据您的要求...它的完成。:)
太好了......它起作用了。这可能不是一个直截了当的方法,但你知道微软。没有什么是直截了当和容易的......:)

v2g6jxz6

v2g6jxz62#

这在Visual Studio 2012中是有效的:

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

看看(.*\n)+?器件如何跨多行进行非贪婪匹配。
fooPatternToStart是起始行上的某个正则表达式模式,而barPatternToEnd是要在下面另一行上找到的模式,可能是下面许多行...
找到的示例为here
简单有效:)
注:VS2012之前,有效的模式是:fooPatternToStart.(.\n)+@.*barPatternToEnd

soat7uwm

soat7uwm3#

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

pkln4tw6

pkln4tw65#

仅由Microsoft提供。请检查 Multiline Search and Replace
它只使用正则表达式。但是对于那些不知道正则表达式的人来说,使用它会更好。

kdfy810k

kdfy810k6#

你也可以用UltraEdit打开文件,它完全支持多行替换。如果你只打算使用一次,你可以使用试用版。

e1xvtsh3

e1xvtsh37#

关于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
jslywgbw

jslywgbw8#

Notepad++的最新版本(截至本文发布)支持多行查找/替换。由于Visual Studio中不再支持宏,这一点现在很重要。

相关问题