Visual Studio,查找和替换,正则表达式

bdh*_*har 133 regex replace visual-studio-2005

我想替换所有#include "whatever.h"#include <whatever.h>使用查找和替换功能,在Visual Studio 2005中我用正则表达式\#include \"[a-z\.h]+\"查找包含语句.但我想知道如何替换正则表达式框架.

\#include \<[a-z\.h]+\>不起作用,不会; 它取代了声明#include "whatever.h"#include <[a-z.h]+>.如何构建替换正则表达式以保留whatever.h原样?

Mie*_*iel 215

对于Visual Studio 2012 之前的版本:
当我这样做时它可以工作:
查找include "{[a-zA-Z]+\.h}",
替换为include <\1>.
您问题最相关的部分是花括号{}和后引用\1:\n对搜索表达式中花括号指示的第n组的引用.

对于Visual Studio 2012及更高版本:
从VS2012开始使用.NET Framework正则表达式.所以它应该是:
找到include "([a-zA-Z]+\.h)",
替换为include <$1>.

  • 它现在在Visual Studio 2012中有所不同.应该使用$ 1而不是\ 1.()现在替换{}.现在与其他人更加一致.http://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx (44认同)
  • 这似乎与标准正则表达式语法不同,后者使用括号来实现此功能. (5认同)
  • 使用 `[a-zA-Z0-9_]` 来捕获更多文件名。 (2认同)