用[\u4e00-\u9fa5]删中文前,必须确保文件以utf-8编码打开,否则因乱码导致匹配失败;还需补充全角标点、日文假名等unicode区间,并避免[一-龥]或漏写u前缀等错误写法。

直接用 [\u4e00-\u9fa5] 就能删掉绝大多数中文字符,但前提是文件已正确加载为 UTF-8;否则正则根本匹配不到一个字——不是写错了,是文本早就解码成乱码了。
为什么搜不到中文?八成是编码没对上
Sublime 状态栏右下角显示的编码如果不是 UTF-8,[\u4e00-\u9fa5] 就会失效。常见情况:Windows 下打开无 BOM 的 UTF-8 文件,被自动识别为 GBK,汉字全变成乱码,正则自然找不到。
- 立刻执行
Ctrl+Shift+P→ 输入Reopen with Encoding→ 选UTF-8强制重载 - 更稳妥:保存时用
File → Save with Encoding → UTF-8 with BOM - 别信系统语言或编辑器界面语言,它们不影响文件解码
[\u4e00-\u9fa5] 覆盖不全?得手动加其他 Unicode 区间
这个范围只覆盖基本汉字区(常用简体/繁体),不包括全角标点、日文假名、韩文、全角空格等。如果文档混有这些,得显式补上:
- 全角空格:
\u3000 - 日文平假名:
\u3040-\u309f - 日文片假名:
\u30a0-\u30ff - 中文标点(顿号、引号等):
\u3000-\u303f - 零宽空格、BOM 等隐形字符:
\u200b\uFEFF\u00a0
组合起来就是:[\u4e00-\u9fa5\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u200b\uFEFF\u00a0]
别用 [一-龥] 或漏掉 u 前缀
这是两个高频错误写法,Sublime 无法正确解析:
-
[一-龥]是旧式写法,不兼容 Unicode 标准,匹配不全甚至报错 -
\4e00漏掉u,会被当八进制转义(\4是 ASCII 字符),完全无效 - 必须写成
\u4e00,且整个范围要用方括号包裹:[\u4e00-\u9fa5]
删之前先 Find All,确认高亮只落在中文上
直接点 Replace All 风险很高。务必先点 Find All,观察高亮是否只出现在你预期的汉字位置:
- 如果整行被高亮,可能是换行符或隐藏字符干扰,需检查是否开启了
. matches newline - 如果字符串中间断开,说明有零宽字符(如
\u200b)把汉字切开了,得先用View → Characters → Show White Space显形 - 若要保注释里的中文、只删代码里的,只能分步:先选中注释 →
Ctrl+Shift+P→Restrict Find to Selection,再运行中文清除正则
真正容易被忽略的是:Sublime 没语法树,它分不清「字符串里的中文」和「注释里的中文」,所有匹配都是纯文本层面的——想精准保留,只能靠人工圈定范围。











