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

Find and replace across several files using regular expressions in Qt Creator

我正在编写一个 C++ 库,刚刚想起我需要导出每个 class。

以下代码:

class MyClass

应该变成:

class MY_EXPORT MyClass

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

您可以使用 Advanced Search 功能实现此目的:

  1. Edit > Find/Replace > Advanced Find > Open Advanced Find...CTRL + SHIFT + F
  2. 在打开的Search Resultswindow中,select一个合适的ScopeCurrent Project对你的情况可能就足够了)。
  3. 勾选Use regular expressions.

  4. Search for 字段中,键入:

    ^class (.*[^;])$

    这将搜索所有从行首开始且不以分号结尾的 class 声明(以排除前向声明)。

  5. File pattern 字段中,键入:

    *.h

    这将确保只在头文件中进行搜索。

  6. 单击 Search & Replace 按钮。您将看到一个搜索结果列表,以及消息 "This change cannot be undone." - 如果您还没有提交工作,现在是提交工作的好时机。

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

    class MY_EXPORT

    这会在每个 class 的名称前添加 MY_EXPORT,在第 4 步中使用 numbered backreference to insert the class name captured with the group

  8. 点击Replace按钮,大功告成。