【问题标题】:Mass search-and-replace of includes大量搜索和替换包含
【发布时间】:2016-12-15 12:28:15
【问题描述】:

我有很多包含以下方式的文件:

#include <log4cxx/*whatever header file*>

我需要基本上搜索和替换它们,将它们更改为:

#include "log4cxx-0.10.0/src/main/include/log4cxx/*whatever header file*>

我试过这样做而不将 &lt;&gt; 更改为 "",但它在构建中搞砸了。

我使用 eclipse 作为 IDE。

提前感谢您的帮助!

【问题讨论】:

  • 问题是?您是想通过 IDE 来完成这项工作,还是想构建一个程序来为您完成这项工作?
  • 我遇到的问题是用""改变周围的&lt;&gt;
  • 我似乎无法找到使用 eclipse 的方法,但我希望有人知道该怎么做
  • 并且添加log4cxx-0.10.0/src/main/include 作为包含路径不是一个选项?
  • 就像(?m)^([ \t]*#include[ \t]+)&lt;(log4cxx)(/[^&gt;]*&gt;) > $1"$2-0.10.0/src/main/include/log4cxx$3 一样简单。见regex101.com/r/kM2kA5/1

标签: c++ regex replace include


【解决方案1】:

如果您使用 emacs(文本编辑器)打开文件,您可以使用命令 replace-regex 并使用正则表达式 #include &lt;.(asterisk)&gt; 替换所有这些 includes.(asterisk) 表示任何零个或多个字符的组。

用星号代替(星号)

【讨论】:

    【解决方案2】:

    我会使用 notepad++ 并使用扩展名 *.h;*.c 和 *.cpp 等进行“在文件中搜索和替换”。 正如其他人所写,您将搜索:

      #include <(log4cxx)/(.*)>
    

    替换为:

      #include "\1-0.10.0/src/main/include/\1/\2"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2020-07-20
      • 2010-09-19
      相关资源
      最近更新 更多