我有一些代码:
#if SILOG
SiAuto.Main.LogException(ex);
// some other lines
#endif
从我的整个代码库中删除周围的#if 的最简单方法是什么,即最终只得到:
SiAuto.Main.LogException(ex);
我使用的是 Visual Studio 2010。我会接受第一个答案,我可以测试它是否有效。期待您的想法!
最佳答案
假设您的代码库都在一个解决方案文件中,并且您没有嵌套的预处理器指令,您可以执行查找并用正则表达式替换:
\#if SILOG{(.*\n)@}\#endif
对于替换字符串,使用这个:
\1
确保已使用“正则表达式”查找选项已选中。
一步一步:
- 打开查找和替换对话框 (ctrl+H)
- 在“查找内容:”下,输入“#if SILOG{(.*\n)@}#endif”(不带引号)
- 在“替换为:”下,输入不带引号的“\1”
- 在“查找范围”下,选择“整个解决方案”
- 展开“查找选项”
- 选中“使用:”并从组合框中选择“正则表达式”
- 点击“查找下一个”查看是否有效
- 如果您有勇气,请点击“全部替换”
但是,这不会修复 #if/#endif 之间的代码缩进。
关于c++ - 从整个代码库中删除特定过时代码行的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309662/