Sublime Text 默认支持正则搜索,开箱即用;使用 Boost.Regex 语法,启用需点击查找面板左下角 .* 按钮;不支持 \K、(? 等部分 Perl 风格语法。

Sublime Text 默认就支持正则搜索,无需额外配置
Sublime Text 原生使用 Boost.Regex 语法(接近 Perl,但有差异),打开查找面板(Ctrl+H 或 Cmd+H)后,点左下角的 .* 按钮即可启用正则模式。它不是“要配置才能用”,而是“开箱即用但容易用错语法”。
为什么你的正则总不匹配?注意这几点语法差异
Sublime 的正则引擎不支持部分常见写法,比如 \K、(?(可变宽度 lookbehind)会直接报错;\d 可用,但 \D 在某些版本中可能不生效;^ 和 $ 默认匹配每行开头/结尾(不是整个文件),这点和 VS Code 不同。
- 用
^\s*$匹配空行,别用^$(后者可能漏掉含空格的行) - 想跨行匹配?必须勾选
. (dot matches newline)按钮,否则.不匹配换行符 -
\b是单词边界,但只认 ASCII 字母/数字/下划线,中文前后不算\b - 捕获组用
$1、$2引用替换内容,不是\1(虽然旧版兼容,但新版推荐$n)
常用查找与替换场景示例
这些是真实高频需求,复制即用,注意开启 .* 和必要时勾选 . (dot matches newline):
查找:([\s\S]*?)替换:$2
查找:\b(function|const|let)\s+([a-zA-Z_$][\w$]*)\s*=\s*(function\s*\()? 替换:$1 $2 = function$3 // 统一补全 function 关键字
查找:// TODO: (.+)
替换:// TODO 【${1}】 // 注意这里用 ${1} 也能工作,但 $1 更通用
进阶:用正则批量重命名或清理注释容易翻车
比如想删掉所有 // @ts-ignore 后面紧跟的换行和空行,写成 // @ts-ignore\s*\n\s*\n 看似合理,但 Sublime 中 \n 在查找框里不会被识别为换行——你得手动按 Shift+Enter 输入真实换行符,或者用 \R(Sublime 特有,匹配任意换行符,包括 \r\n、\n、\r)。
-
\R比\n更可靠,尤其处理 Windows / macOS 混合换行的文件 - 替换时如果用了
$0(整个匹配),要注意它包含换行符,可能导致格式错乱 - 大文件上反复试错前,先用
Find All看匹配数量,避免误操作扩散
真正麻烦的从来不是写不出正则,而是没意识到 Sublime 对 Unicode、换行、边界这些细节的处理和其他编辑器不一样。










