在我们的项目中,我们使用include guards,例如:
..
#ifndef _SINGLETON_H_
#define _SINGLETON_H_
..
#endif // #ifndef _SINGLETON_H_
..
最后一行可以没有注解等,所以文件匹配如下:^.*#ifndef\s+[A-Z_]+\s+#define\s+[A-Z_]+(.*\n)*.*#endif.*$
.
我想将其替换为:
..
#pragma once
..
..
使用Replace All
功能。
如何做到这一点?
可能以某种方式将包含保护与内容匹配,将内容存储在包含保护中,用pragma前缀内容并用内容替换包含保护,对吗?
我正在努力存储(或不修改)包含保护中的内容。
1条答案
按热度按时间r7knjye21#
所以我自己实现了它(至少在我们的项目中替换了4687个头):
1.搜索:
^#ifndef\s+[A-Z_].*\s*#define\s+[A-Z_].*((.*\n)+.*)#endif.*$
替换:
#pragma once$1
1.点击
Replace All
。