在 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 功能实现此目的:
Edit > Find/Replace > Advanced Find > Open Advanced Find...
或 CTRL + SHIFT + F
- 在打开的
Search Results
window中,select一个合适的Scope
(Current Project
对你的情况可能就足够了)。
勾选Use regular expressions
.
在 Search for
字段中,键入:
^class (.*[^;])$
这将搜索所有从行首开始且不以分号结尾的 class 声明(以排除前向声明)。
在 File pattern
字段中,键入:
*.h
这将确保只在头文件中进行搜索。
单击 Search & Replace
按钮。您将看到一个搜索结果列表,以及消息 "This change cannot be undone." - 如果您还没有提交工作,现在是提交工作的好时机。
展开每个搜索结果以检查匹配是否正确。满意后,在 Replace with
字段中输入以下内容:
class MY_EXPORT
这会在每个 class 的名称前添加 MY_EXPORT
,在第 4 步中使用 numbered backreference to insert the class name captured with the group。
点击Replace
按钮,大功告成。
我正在编写一个 C++ 库,刚刚想起我需要导出每个 class。
以下代码:
class MyClass
应该变成:
class MY_EXPORT MyClass
我有几个 classes 需要这个改变 - 有没有办法使用 Qt Creator 来做到这一点?
您可以使用 Advanced Search 功能实现此目的:
Edit > Find/Replace > Advanced Find > Open Advanced Find...
或 CTRL + SHIFT + F- 在打开的
Search Results
window中,select一个合适的Scope
(Current Project
对你的情况可能就足够了)。 勾选
Use regular expressions
.在
Search for
字段中,键入:^class (.*[^;])$
这将搜索所有从行首开始且不以分号结尾的 class 声明(以排除前向声明)。
在
File pattern
字段中,键入:*.h
这将确保只在头文件中进行搜索。
单击
Search & Replace
按钮。您将看到一个搜索结果列表,以及消息 "This change cannot be undone." - 如果您还没有提交工作,现在是提交工作的好时机。展开每个搜索结果以检查匹配是否正确。满意后,在
Replace with
字段中输入以下内容:class MY_EXPORT
这会在每个 class 的名称前添加
MY_EXPORT
,在第 4 步中使用 numbered backreference to insert the class name captured with the group。点击
Replace
按钮,大功告成。