能做到吗 我们正在使用VS2005,VS2008和VS2010。
我不是说正则表达式-有其位置-而是纯文本查找和替换。我知道我们可以使用\ n标签使用正则表达式来做到这一点,但不希望被正则表达式转义字符弄乱,再加上可读性问题。
如果无法做到,人们会使用什么简单而又简单(免费)的选择?那不涉及敲响我们自己的宏。
能做到吗 我们正在使用VS2005,VS2008和VS2010。
我不是说正则表达式-有其位置-而是纯文本查找和替换。我知道我们可以使用\ n标签使用正则表达式来做到这一点,但不希望被正则表达式转义字符弄乱,再加上可读性问题。
如果无法做到,人们会使用什么简单而又简单(免费)的选择?那不涉及敲响我们自己的宏。
Answers:
我终于找到了
无需下载和加载任何外部宏。
它至少可以在Visual Studio 2008中使用内置宏工作。:)
步骤:
1)选择要查找的文本。
2)按“ Alt + F8”或打开“工具->宏->宏资源管理器”
3)双击“示例->实用程序-> FindLine”。(它将打开“查找”框,其中您的选择已加载到“查找”字段中。不要担心“查找”字段中显示的文本被截断。相信我,该字段具有所有内容。.MS表示方式可能是...: ))
4)单击“查找和替换”对话框上的“快速替换”按钮。输入您的替换文字。
5)然后根据需要单击3个按钮中的任何一个...并完成。:)
Hurray ..它的工作..可能不是直接的方法,但是您知道使用MS ..没有什么是简单易行的.. :)
现在可以在Visual Studio 2012中使用:
fooPatternToStart.*(.*\n)+?.*barPatternToEnd
查看(.*\n)+?
零件如何跨多行(非贪婪)进行匹配。
fooPatternToStart
是您的开始行上的一些正则表达式模式,而barPatternToEnd
您的模式是在下面的另一行上找到的,可能是下面的许多行...
在这里找到示例。
简单有效:)
注意:在VS2012之前,有效的模式是:fooPatternToStart.(.\n)+@.*barPatternToEnd
您可以通过在“查找和替换”对话框中单击“使用正则表达式”复选框来搜索多行表达式。然后以表示换行\n
。
\n
,\r\n
则可能需要更改为。
它仅由Microsoft提供。请检查https://visualstudiogallery.msdn.microsoft.com/699CE302-B0D4-4083-BE0E-1682E873CEBF。
它仅使用正则表达式。但是对于那些不了解正则表达式的人来说,更好地使用它。
关于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