如何用正则匹配#include语句中所有Foo并替换为Bar?
解决#include语句内批量替换Foo为Bar的正则方案
Notepad++ 操作步骤
- 打开替换窗口(快捷键
Ctrl+H) - 在搜索模式中选择正则表达式,确保未勾选「. 匹配换行」(#include通常为单行语句)
- 查找模式输入:
(#include ")(.*?)(") - 替换模式输入:
$1${2/Foo/Bar/g}$3 - 点击「全部替换」完成批量替换。
原理:正则先捕获#include "、引号内的全部内容、末尾引号三个部分,通过${2/Foo/Bar/g}对第二个捕获组(引号内内容)做全局替换,将所有Foo替换为Bar。
Visual Studio 操作步骤
- 打开替换窗口(快捷键
Ctrl+H) - 勾选窗口右下角的「使用正则表达式」
- 查找模式输入:
(#include ")(.*?)(") - 替换模式输入:
$1${2/Foo/Bar/g}$3 - 点击「全部替换」完成批量替换。
补充方案:若VS组内替换语法不生效,可分两步操作:
- 用正则
#include "([^"]*)"选中所有#include语句的引号内容 - 开启「在选中区域替换」,以
Foo为查找目标、Bar为替换内容,勾选「全部替换」执行操作。
内容的提问来源于stack exchange,提问作者M.kazem Akhgary
相关产品推荐
相关产品推荐

