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


143

我想替换所有#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原样?

Answers:


225

对于Visual Studio 2012 之前的版本:
在执行此操作时它将起作用:
find include "{[a-zA-Z]+\.h}"
替换为include <\1>
与您的问题最相关的部分是花括号{}和向后引用\1\n对搜索表达式中由花括号指示的第n个组的引用。

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


5
这似乎与使用括号实现此功能的标准正则表达式语法不同。
地精炼金术士2012年

44
现在在Visual Studio 2012中有所不同。应使用$ 1代替\ 1。()现在替换{}。现在与其他所有人更加一致。 msdn.microsoft.com/zh-CN/library/2k3te2cs(v=vs.110).aspx
oillio 2013年

1
使用[a-zA-Z0-9_]捕捉到更多的文件名。
Reinier Torenbeek

1

您需要为大小写的正则表达式选择匹配大小写和正则表达式。其他[az]无效。在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.