sublime正则需手动开启且严格转义:必须点击.图标(或alt+r)启用,.、(等元字符需写为.、(;大小写敏感默认开启;全局替换须精准限定路径如src//.js;空行清理用^[ \t]*$而非^\s*$;捕获组仅支持$1语法,不支持\1。

正则开关没点,所有元字符都当普通字符处理
Sublime 默认关闭正则模式,^、$、\d、. 全部失效——哪怕你写了 console\.log\([^)]*\),不点右下角 .* 图标,它就只当一串普通文本搜,肯定找不到。
必须手动点 .*(或按 Alt+R / Cmd+Alt+R),图标变蓝才算生效。验证方法:输 \d+ 点“查找”,能高亮数字就对了;如果没反应,回去再点一次。
-
Ctrl+H打开替换面板后,.*是独立开关,Ctrl+F里开了不代表Ctrl+H也开着 - 转义不能省:
.要写成\.,(要写成\(,Sublime 不自动补 - 大小写敏感默认开启,想忽略大小写,点
Aa图标,或加(?i)前缀
跨文件替换前必须锁路径,填 * 就等于裸奔
用 Ctrl+Shift+F 全局替换时,Where 字段填 * 会扫整个项目根目录,包括 node_modules、dist、.git、README.md——搜 log\(.*?\) 替成 console.log$1,可能直接污染第三方库源码。
精准写法示例:
-
src/**/*.js:只匹配src下所有.js文件 -
*.ts,*.js:逗号分隔,无空格,匹配两类后缀 -
!node_modules,!dist:前面加!排除目录 - 执行前务必点
Find,右侧预览列表里快速扫一遍路径是否合理
删空行、去尾空格,别信 \s
\s 在 Sublime 中会匹配 \n 和 \r,导致 ^\s*$ 实际可能删掉只有回车符的“假空行”,甚至破坏文件末尾结构;\s+$ 还可能吞掉最后一行的换行符,保存后少一行。
安全写法:
- 删真正空行(含空格/Tab):
^[ \t]*$,替换留空 - 删行尾空格+Tab:
[ \t]+$,不是\s+$ - 清空整行但保留换行符:替换框留空,别加
\n或\r,Sublime 自动保持行结构 - 删完再补一刀清理末尾多余换行:
\R$→ 留空(确保文件以单个换行结尾)
捕获组引用必须用 $1,别混用 \1
常见现象是写好 (\w+)\.(\w+) 并在替换框填 $2.$1,结果输出原样字符串而非交换顺序——根本原因是 Sublime 只认 $1 语法,\1 不稳定,旧版本可能兼容,但新版本基本失效。
注意事项:
-
$0表示整个匹配,$1是第一个(,以此类推,编号严格按左括号出现顺序 - 所有
(都算捕获组,Sublime 不支持非捕获组(?:),嵌套括号会拉高编号,容易用错 - 提取函数参数推荐
[^)]+而非.*?:前者明确限定只吃非右括号字符,天然防贪婪、抗换行、不误吞注释 - 复杂结构(如多层
{}或 JSX)正则处理不了,这时候该上专门解析器,而不是硬刚
.* 图标是否蓝、点 Find All 看高亮是否合理、快速扫一遍 Where 路径。











