sublime中用正则删除所有中文字符:查找[\u4e00-\u9fa5],替换为空,需勾选正则模式;旧写法[一-龥]或漏u前缀均无效。

Sublime 里用正则删掉所有中文字符
直接用 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)打开替换面板,勾选右下角的 .* 按钮启用正则模式,然后填:
查找:[\u4e00-\u9fa5]
替换:(留空)
点 Replace All 就能清掉所有汉字。注意这个范围覆盖了常用汉字(Unicode 基本汉字区),但不包括全角标点、日文假名、韩文等;如果文档混有这些,得额外加 \u3000-\u303f\u3040-\u309f\u30a0-\u30ff 等区间。
常见错误:写成 [一-龥] —— 这是旧式写法,不兼容 Unicode 标准,Sublime 可能匹配不全甚至报错;还有人漏掉 u 前缀,写成 \4e00,这会被当八进制转义,完全无效。
只保留英文字符串(字母 + 数字 + 下划线 + 空格)
如果你不是要“删除中文”,而是想“提取纯英文片段”(比如从混合文本中捞出变量名、路径、标识符),推荐反向思路:匹配目标再复制出来。
查找:[a-zA-Z0-9_ ]+
替换:$0\n($0 表示整个匹配内容,\n 换行分隔)
然后 Replace All,再全选结果、Ctrl+Shift+K 删除空行即可。
- 若需排除连续空格干扰,改用
[a-zA-Z0-9_]+(?: [a-zA-Z0-9_]+)*,它强制单词间最多一个空格 - 若含连字符(如
user-name),把-加进字符组:[a-zA-Z0-9_-]+ - 注意
(空格)在字符组里要放最前或最后,否则可能被误读为分隔符
为什么不用 \w 直接代替 [a-zA-Z0-9_]
因为 Sublime 的正则引擎(PCRE 变种)默认开启 Unicode 模式,\w 会匹配汉字、日文、俄文字母等——这和你要“纯英文”的目标冲突。
验证方法:在空文件里输入 abc测试123,用 \w+ 查找,会一次性匹配整串;而 [a-zA-Z0-9_]+ 只匹配 abc 和 123 两段。
所以只要目标明确是 ASCII 范围内的英文标识符,就别图省事用 \w,否则提取结果会混入意外字符。
批量处理多个文件时的注意事项
Sublime 的“Find in Files”不支持直接替换多文件(仅支持查找),必须逐个文件操作,或借助插件(如 MultiEditUtils)补足能力。
更稳的方式是导出匹配结果:
用 Find in Files 面板(Ctrl+Shift+F)输入 [a-zA-Z0-9_ ]+,点查找后,在结果面板里右键 → Copy All,粘贴到新标签页再清洗。
容易被忽略的一点:Sublime 默认对大文件(>10MB)禁用正则查找,设置里没有显式开关,只能靠拆分文件或换工具(如 ripgrep + sed)应对。











