You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Notepad++中移除.cpp文件中/**与*/间的跨多行注释?

嘿,我来帮你搞定这个多行注释移除的问题!你之前的正则表达式没准确匹配块注释的边界,而且没处理跨行的情况,所以才会出问题。

正确的正则表达式方案

在Notepad++里,你可以用这个正则来精准匹配并移除所有/**和*/之间的多行注释:

查找目标:

/\*\*(?s).*?\*/

替换为:(留空即可)

为什么这个正则管用?

我拆解一下每个部分的作用:

  • \/\*\*:准确匹配块注释的开头/**,因为*是正则里的特殊字符,所以要加反斜杠转义
  • (?s):这是PCRE的模式修饰符,开启DOTALL模式,让.可以匹配包括换行符在内的所有字符,完美解决跨行注释的问题
  • .*?:非贪婪匹配任意字符,确保我们只会匹配到第一个*/,不会过度匹配后面的内容
  • \*/:匹配块注释的结尾*/,同样转义了*

操作步骤

  1. 打开你的.cpp文件,按下Ctrl+H调出替换对话框
  2. 在对话框顶部切换到「正则表达式」模式(记得不要选「普通」或者「扩展」)
  3. 在「查找目标」输入框粘贴上面的正则表达式
  4. 「替换为」输入框保持为空
  5. 点击「全部替换」,所有符合要求的块注释就会被移除啦

注意事项

  • 这个正则不支持处理嵌套的块注释(比如/** 外层注释 /** 内层注释 */ 外层注释 */),不过好在C++语法本身不允许嵌套块注释,所以正常代码里不会出现这种情况
  • 如果你的代码里有字符串包含/**或*/(比如std::string str = "/** 模拟注释 */";),这个正则会误把字符串里的内容当成注释移除。如果有这种场景,你需要更复杂的正则来区分字符串和注释,不过大部分情况下这个方案已经足够用了

内容的提问来源于stack exchange,提问作者Ana Gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:49:02