sublime中ctrl+h替换需手动开启右下角.*正则开关,否则d、
等被当字面字符;匹配字面符号需转义,捕获组用()并引用$1,单词边界防误替,s含换行需注意空行删除逻辑。
Sublime 中 Ctrl+H 替换框默认不启用正则,必须手动点开
很多人输完查找内容、替换内容后直接点 Replace All,结果没生效——根本原因是正则开关没打开。这个按钮在替换面板右下角,图标是 .*,点击后变蓝才表示正则已激活。不点它,d、s、^ 这些全当普通字符处理,毫无作用。
常见错误现象: 想换行结果替换成两个字符「」和「n」;
被字面替换而非制表符;\ 写成单反斜杠直接报错。
- Windows/Linux 用
Ctrl+H,macOS 用Cmd+H打开替换面板 - 务必点击右下角
.*图标(或按Alt+R切换) - 若需匹配字面意义的
.、+、?等,得写成.、+、?
匹配换行和空白字符要用
、 、s,但注意 s 包含
想把多行文本合并成一行?别用 —— Sublime 基于 PCRE,统一用
表示换行(无论文件是 Windows 还是 Unix 换行符)。想删空行?用
^s*$,但要注意末尾的
是真正要删掉的换行符,不是匹配的一部分。
性能提示:s 会匹配空格、制表符、换行符、回车符、垂直制表符、换页符,比单独写 [ 更简洁,但若只想匹配空格和制表符,用
][ ] 更精准、更安全。
- 替换所有换行符为空格:
Find:→
Replace:(一个空格) - 删空行(含只有空白的行):
Find:^s*$→
Replace:空 - 匹配中文字符之间的空格(避免误伤英文单词内空格):
[u4e00-u9fa5]s+[u4e00-u9fa5]
$1、$2 引用捕获组,但括号必须用 ( 和 ) 转义
Sublime 的正则引擎对字面括号要求严格:普通括号 () 是元字符,要匹配字面的 ( 或 ),必须写成 ( 和 )。反过来,想做分组捕获,就得用未转义的 ()。