使用Qt Creator中的正则表达式查找并替换多个文件

Mit*_*tch 3 c++ regex replace qt-creator

我正在编写一个C++库,并且记得我需要导出每个类.

以下代码:

class MyClass
Run Code Online (Sandbox Code Playgroud)

应成为:

class MY_EXPORT MyClass
Run Code Online (Sandbox Code Playgroud)

我有几个类需要这个改变 - 有没有办法使用Qt Creator做到这一点?

Mit*_*tch 6

您可以使用高级搜索功能实现此目的:

  1. Edit > Find/Replace > Advanced Find > Open Advanced Find...CTRL+ SHIFT+F
  2. Search Results打开的窗口中,选择一个合适的Scope(Current Project在您的情况下可能已足够).
  3. 检查Use regular expressions.

  4. 在该Search for字段中,键入:

    ^class (.*[^;])$

    这将搜索从行开头开始并且不以分号结尾的所有类声明(以排除前向声明).

  5. 在该File pattern字段中,键入:

    *.h

    这将确保搜索仅在头文件中发生.

  6. 单击Search & Replace按钮.您将看到一个搜索结果列表,并显示消息"此更改无法撤消". - 现在是你工作的好时机,如果你还没有.

  7. 展开每个搜索结果以检查匹配是否正确.满意后,在Replace with字段中键入以下内容:

    class MY_EXPORT \1

    这将MY_EXPORT在每个类的名称之前添加,使用编号的反向引用在步骤4中插入随一起捕获的类名.

  8. 单击Replace按钮,您就完成了.