3

我正在寻找一个体面的工具,它可以使用我在 C# 中使用的正则表达式语法对多个文件进行搜索和替换。通常我会在 Visual Studio 中执行此操作,但它具有最奇怪的正则表达式语法(这意味着比手动替换文件中的文本要快)。

到目前为止,我已经尝试过 windows grep 但它不喜欢下面的正则表达式。有问题的正则表达式是

<see cref="(?<class>.+)">(.+)</see>

替换为

<see cref="${class}"/>

或者将其转换为 Visual Studio 的语法就可以了!

Jeff在他的博客上有一个完整的帖子。

4

5 回答 5

3

在 Visual Studio 中,您可以使用以下 Reg Ex 执行此操作:

\<see cref="{.+}"\>.+\</see\>

代替:

<see cref="\1" />

请记住在“查找和替换”对话框中选择“使用/正则表达式”。

我一直认为 Visual Studio 不支持与 .Net 框架相同的正则表达式语法,这很糟糕。

于 2009-02-26T13:51:04.283 回答
3

在 Visual Studio 中,找到:

\<see cref="{:i}"\>.*\</see\>

并替换为:

<see cref="\1"/>

{} 是 VS 分组运算符。它没有被命名。在替换中,\n 用于查找表达式中第 n 组的值。

如果您需要考虑新行或其他空白,您可以调整:iand部分。.*

于 2009-02-26T13:51:13.473 回答
3

有几个选择:

  • 如果这是你经常做的事情,我会选择PowerGrep,因为它可能是最完整和用户友好的工具。

  • 它的兄弟RegexBuddy也有一个 Grep 功能,尽管没有那么全面。

  • 如果你不怕 Perl,你也可以使用它的命令行作为搜索和替换工具

  • 否则,仍然有古老的sed在 Windows 上工作。

于 2009-02-26T14:17:08.793 回答
1

notepad++ 非常流行和轻量级并且有这个功能,你试过吗?:

http://notepad-plus.sourceforge.net/uk/site.htm

编辑:看起来我的链接已经过时了,而且这种用法只是最近才出现的:

http://www.opensourcereleasefeed.com/release/show/notepad-v5-2-released-replace-in-files-feature-added

于 2009-02-26T13:33:30.050 回答
1

您可以使用 .NET 正则表达式插件来允许您在 Visual Studio 中使用 .NET 正则表达式。它位于http://www.codeproject.com/KB/macros/VS2005RegexAddIn.aspx的 CodeProject 上。

麦克风

于 2009-02-27T19:15:33.870 回答