我正在寻找一个可以在多个文件中进行搜索和替换的合适工具,使用我在C#中使用的正则表达式语法。通常我会在Visual Studio中执行此操作,除非它具有最奇怪的正则表达式语法(这意味着比仅手动替换文件中的文本更快)。
到目前为止,我已经尝试过windows grep,但它不喜欢下面的正则表达式。有问题的正则表达式是
<see cref="(?<class>.+)">(.+)</see>
替换为
<see cref="${class}"/>
或者将其转换为Visual Studio的语法就可以了!
杰夫在他的博客上有whole post。
答案 0 :(得分:3)
在Visual Studio中,您可以使用以下注册表项执行此操作:
\<see cref="{.+}"\>.+\</see\>
替换:
<see cref="\1" />
请记住在“查找和替换”对话框中选择“使用/正则表达式”。
我一直认为Visual Studio不支持与.Net框架相同的正则表达式语法。
答案 1 :(得分:3)
在Visual Studio中,找到:
\<see cref="{:i}"\>.*\</see\>
并替换为:
<see cref="\1"/>
{}是VS分组运算符。它没有命名。在替换中,\ n用于查找表达式中第n组的值。
如果您需要考虑换行或其他空格,可以调整 :i
和 .*
部分。
答案 2 :(得分:3)
有几个选择:
如果您经常这样做,我会选择PowerGrep,因为它可能是最完整且用户友好的工具。
它的兄弟RegexBuddy也有Grep功能,虽然不够全面。
如果您不害怕Perl,您也可以将其命令行用作search and replace tool。
否则,sed仍有值得尊敬的works on Windows。
答案 3 :(得分:1)
notepad ++非常受欢迎且轻量级,并且具有此功能,您尝试过吗?:
http://notepad-plus.sourceforge.net/uk/site.htm
修改: 看来我的链接已经过时了,这种用法只是最近的用途:
答案 4 :(得分:1)
您可以使用.NET正则表达式AddIn来允许您在Visual Studio中使用.NET正则表达式。它位于http://www.codeproject.com/KB/macros/VS2005RegexAddIn.aspx的CodeProject上。
麦克