65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 正则表达式查找和替换 Visual Studio 2008 插件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (34投票s)

2008年6月13日

CPOL

3分钟阅读

viewsIcon

193547

downloadIcon

1671

一个用于 Visual Studio 2008 的 .NET 正则表达式查找和替换插件

replace_in_files.PNG

引言

此插件适用于任何想要在 Visual Studio 中使用正则表达式进行查找和替换,但不希望使用内置对话框中奇怪的正则表达式语法的人。此插件提供了一个新的对话框,该对话框使用 .NET 的正则表达式进行查找和替换。

背景

我几年前开发了这个插件,所以我不记得所有促使我这样做的原因了。我厌倦了 Visual Studio IDE 中提供的受限制的正则表达式版本。我找到了这篇文章,它介绍了一个听起来不错的 Visual Studio 插件,但它不适用于 Visual Studio 2005。我的插件部分基于该插件,并进行了一些错误修复和添加了其他功能。

该项目现在已更新,可在 Visual Studio 2008 中使用。

使用插件

如果您只想使用该插件,请下载插件文件并将其复制到 "C:\<user folder>\Visual Studio 2008\AddIns" 目录。如果您想修改源代码(或修复任何明显的错误),请下载源代码并运行该项目。

要调试该项目,请将 "RegexFindAndReplace - For Testing.AddIn" 移动到 "C:\<user folder>\Visual Studio 2008\Addins"。

您还需要在 RegexFindAndReplace.csproj 中更新如下部分

<Content Include="C:\<user folder>
	\Visual Studio 2008\Addins\RegexFindAndReplace - For Testing.AddIn">
<Link>RegexFindAndReplace - For Testing.AddIn</Link>
</Content>

在 "RegexFindAndReplace - For Testing.AddIn" 中,您需要更新此部分以指向项目的位置

<Assembly><project directory>\RegexFindAndReplace\bin\RegexFindAndReplace.dll</Assembly>

还需要更新以下调试项目设置

  • 启动外部程序: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
  • 命令行参数: /resetaddin RegexFindAndReplace.Connect
  • 工作目录: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\

安装完成后,您将在编辑|查找和替换菜单中找到一个新条目

menu.png

还有一个键盘快捷键 Ctrl+Shift+X,适用于那些尽可能避免使用鼠标的人。

关注点

此插件提供了与内置查找和替换对话框的大部分功能,并提供了一些其他选项。在“在文件中查找”模式下,结果将打印到“输出”窗口

output.PNG

在“查找”或“替换”文本框的右侧,有一个下拉菜单,其中包含正则表达式或替换字符串中使用的几个常见构造。“捕获的子表达式”菜单列出了所有可用的反向引用,并且在选择一个时,相应的表达式会在文本框中以蓝色突出显示

highlighted_subexpressions.PNG

我很高兴能参与这个项目的开发;如果您有任何功能请求或错误,请与我联系,我会尽力确保它尽可能有用。

限制

搜索匹配的每个文件都会读入内存;这意味着无法使用此对话框搜索太大而无法装入内存的文件。原因是正则表达式可以跨越多行。将来,我可能会在正则表达式中添加换行符的检查,以查看是否可以一次处理一行文件。

历史

  • 2008 年 6 月 13 日
    • 原始文章发布
  • 2008 年 7 月 28 日
    • 改进了在“全部查找”和“全部替换”模式下处理文件的算法
    • 添加了“停止”按钮以启用取消“全部查找”或“全部替换”操作
  • 2009 年 3 月 5 日
    • 更新了 Visual Studio 2008 的文章和项目
    • 修复了某些类型的 Visual Studio 项目中出现的“未将对象引用设置到对象的实例”错误消息
    • 修复了对话框窗口的显示方式
  • 2009 年 10 月 8 日
    • 为具有代码隐藏文件的 Web 项目添加了更好的支持
    • 修复了“全部替换”中的文件编码问题
  • 2009 年 10 月 12 日 
    • 添加了 这篇文章中描述的 CollapsibleGroupBox 类的使用
© . All rights reserved.