可以吗?我们正在使用VS2005和VS2008以及VS2010。
我不是指正则表达式 - 它们有它们的位置 - 但是普通的旧文本找到&更换。我知道我们可以使用\ n标签使用正则表达式(在紧要关头),但不要纠结于正则表达式转义字符,还有可读性问题。
如果无法做到,人们使用的是简单(简单)(免费)替代方案吗?这并不涉及敲响我们自己的宏。
答案 0 :(得分:65)
我终于找到了它..
无需下载和加载任何外部宏。
它至少在内置宏的Visual Studio 2008中工作。 :)
步骤:
1)选择要查找的文本
2)按“Alt + F8”或打开“工具 - >宏 - >宏浏览器”
3)双击“Sample - > Utilities - > FindLine”。 (它将打开查找框,并在“查找”字段中加载您的选择。不要担心“查找”字段中显示的截断文本。相信我,字段拥有一切......显示它的MS方式可能是......: ))
4)单击“查找和替换”对话框中的“快速替换”按钮。输入您的替换文字。
5)根据您的要求点击3个按钮中的任何一个......并完成它。 :)
Hurray ..它的工作..可能不是一个直接的方式来做到这一点,但你知道MS ...没有什么是直截了当的简单.. :)
答案 1 :(得分:18)
答案 2 :(得分:14)
今天在Visual Studio 2012中有效:
fooPatternToStart.*(.*\n)+?.*barPatternToEnd
了解(.*\n)+?
部分如何跨多行进行匹配,非贪婪
fooPatternToStart
在您的起始行上是一些正则表达式模式,而barPatternToEnd
是您在下面另一行上找到的模式,可能在下面有很多行......
找到示例here。
简单有效:)
注意:之前 VS2012,有效的模式是:fooPatternToStart.(.\n)+@.*barPatternToEnd
答案 3 :(得分:12)
您可以通过单击“查找和替换”对话框中的“使用正则表达式”复选框来搜索多行表达式。然后,\n
表示换行符。
答案 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中没有宏支持,现在这是相关的。