d删除数字需开启正则模式,否则匹配失败;d逐字符删,d+批量删连续数字;处理负数、小数需分步正则;全角、中文数字需显式字符组;删前须警惕注释和版本号误删。

直接删代码里的所有数字,d 是最简方案,但必须开正则模式,否则它啥也不匹配。
为什么 d 替换没反应?
Notepad++ 默认是「普通」查找模式,d 在这种模式下就是两个普通字符:反斜杠 + d。文档里几乎不会有这个组合,所以「全部替换」看起来像没生效。
- 打开
Ctrl+H,确认「查找模式」下拉菜单选的是 正则表达式(不是「扩展」或「通配符」) - 取消勾选「匹配大小写」和「匹配整个单词」——它们会干扰数字匹配
- 检查「查找内容」里是不是误输成
\d(双反斜杠),正确写法是d
d 和 d+ 到底该用哪个?
目标是“删掉所有数字”,两者结果一致,但行为不同:
-
d:逐字符匹配,每遇到一个数字就删一次。适合简单清洗,兼容旧版 Notepad++ -
d+:一次匹配连续数字串(如123、45678),替换次数更少,对超长文本略快 - 如果数字中间夹着字母(比如
a1b2c3),两种写法输出一样,都是abc
代码里还有负号、小数点、科学计数法怎么办?
d 只认 0-9,对 -42、3.14、1e5 无能为力,硬套只会留下 -、.、e 这类残渣。
- 删完整整数(含负号):
-?d+ - 删小数(含负号和小数点):
-?d+.d+(注意.的反斜杠不能少,否则.会匹配任意字符) - 实际建议分两步:先用
-?d+.d+替换为空,再用-?d+替换为空 - 别指望一步到位写个万能正则——Notepad++ 对
(?:)等高级语法支持不稳定,强行用反而容易漏或错
真正容易被忽略的三类数字
中文数字(“一”“二”“百”)、全角数字(0123456789)、带 Unicode 数字(比如罗马数字ⅠⅡ)——d 完全不碰它们。
- 要处理全角数字,得显式写进字符组:
[0-9uFF10-uFF19] - 中文数字需用 Unicode 范围:
[u4e00-u9fff],但得配合上下文判断,否则可能误删汉字变量名 - 代码里混着中文注释或日志字符串时,删数字前先确认是否真要动这些内容——
d不长眼,删完才发现把版本号 v2.3.1变成v...就晚了











