必须先设置正确语法模式并启用跨行匹配,再用对应正则提取注释:JavaScript用/*[\s\S]*?*/,Python用"""[\s\S]*?"""或'''[\s\S]*?''',行首注释用^\s(?://|#).$,且务必Find All抽检三处以上。

用正则提取注释前,先确认文件语法模式
右下角显示 Plain Text 或 Unsupported syntax 时,/* */、//、# 都不会被正确识别为注释 scope,正则会误匹配字符串或 URL。必须按 Ctrl+Shift+P → 输入 Set Syntax: JavaScript(或对应语言)显式指定,否则所有后续操作都不可靠。
提取块注释:用 /\*[\s\S]*?\*/ 并启用跨行匹配
这是唯一能稳定捕获多行 /* */ 注释的写法:
-
[\s\S]显式覆盖换行符,比.可靠;?确保非贪婪,避免从第一个/*一路吃到文件末尾最后一个*/ - 必须点击查找面板右下角的
.\n图标启用跨行匹配,否则/\*[\s\S]*?\*/也只在单行内生效 - Python 的三引号文档字符串不是注释,要用
"""[\s\S]*?"""或'''[\s\S]*?'''单独提取 - HTML 和 CSS 文件中,
才是正确提取方式,不能复用/\*[\s\S]*?\*/
提取行首注释:用 ^\s*(?://|#).*$ 锚定位置
这个表达式只命中真正位于行首或缩进后紧跟的注释,避开干扰项:
-
^和\s*确保匹配从行开始处或空格/制表符后立即出现的//或# - 不会误抓
https://api.com、url = "a.com#anchor"、const r = /a\/b/;中的符号 - 它不匹配行中注释(如
int x = 1; // init),若需提取这类,得改用\s+(?://|#).*$并手动逐条确认——因为正则无法判断分号后是否真为注释 - JSON 文件默认无注释支持,若用
JSONC语法,则//和/* */均可被提取,但需先切换语法
执行前必须 Find All 抽检三处以上
哪怕正则完全正确,仍可能误提:
- 正则字面量里的
/a\/b/中的/ - 配置文件中带
# default=1的关键参数 - 字符串中伪装的注释,如
log("/* debug only */") - 操作流程:粘贴正则 → 点
Find All→ 检查高亮是否全为真注释 → 至少抽检开头、中间逻辑段、结尾配置块三处 → 删/提完立刻Ctrl+Z回退验证
真正卡住的往往不是正则写不对,而是忘了看右下角语法名、没点 .\n 图标、或者跳过 Find All 抽检直接替换——这三处漏掉任一,提取结果就不可信。











