sublime中删除数字需启用正则(点右下角.*图标),用\d+而非\d避免残留空格;\d仅匹配ascii数字,全角数字需额外处理;注意保留空行和缩进格式。

用 Ctrl+H 打开替换面板,正则必须勾选 .* 按钮
不启用正则模式时,\d、[0-9] 这类写法会被当成普通字符,一个都匹配不到。Sublime 的正则开关藏在替换面板右下角,图标是 .*,点一下变蓝才算激活。常见错误是反复试 \d 不生效,其实只是忘了点它。
删除所有数字,推荐用 \d+ 而不是 \d
\d 只匹配单个数字,替换后会留下空格或换行断点;\d+ 一次吞掉连续数字(比如 123),避免多次替换残留。实际效果差异明显:
原文:abc123def4567ghi 用 \d 替换为空 → abc def ghi(多个空格) 用 \d+ 替换为空 → abcdefghi(干净)
- 如果数字间有标点或字母,
\d+依然安全,不会跨段匹配 - 想保留数字间的分隔符(如
item1, item2→item, item),就用\d+ - 若需保留某些数字(如版本号
v2.3.0),得改用更精确的 pattern,不能无脑删
小心 Unicode 数字和全角数字
默认 \d 只匹配 ASCII 数字 0–9,对中文全角数字(如「123」)或阿拉伯文数字无效。如果文本含多语言数字:
- 手动加入 Unicode 范围:
[0-9\uff10-\uff19](覆盖全角 0-9) - 或用 Sublime 支持的
\p{Nd}(需开启 PCRE 模式,但 Sublime 默认不支持,慎用) - 更稳的办法:先用查找
[0-9]单独处理一遍全角,再跑\d+
多数英文/中文混排场景里,只跑 \d+ 就够了;真遇到全角数字,控制台里 view.find(r'[0-9]', 0) 一眼就能验出来。
批量删数字又想留空行?别直接替换成空,试试 \n 或
直接替换成空字符串,可能把 line1\n123\nline2 变成 line1\nline2(空行消失)。如果格式敏感:
- 想保持行数不变:替换为单个空格
,再用Ctrl+Shift+P→Trim Trailing White Space - 想合并多空行:先删数字,再用正则
\n\s*\n→\n\n - 删完发现缩进错乱?说明原数字在 tab/空格中间,建议先
Convert Indentation to Spaces
正则替换不是一锤子买卖,尤其带格式的文本,删完扫一眼行号和缩进是否突兀,比事后调试快得多。











