Notepad++可通过正则表达式删除指定长度的行:用^.{N}$\R?删恰好N字符行,^.{1,3}$R?删1–3字符行,^.{10,}$\R?删≥10字符行;删空白行用^\s*$R?;大文件建议先标记再删以避免卡顿。

用正则匹配行长度并删除整行
Notepad++ 没有直接按“字符数”删行的功能,但可以用正则表达式模拟:通过 ^.{N}$ 匹配**恰好 N 个字符**的行(不含换行符),再配合 R? 吃掉换行符,实现真正删行。关键不是数“显示长度”,而是数实际字节数——中文、制表符、空格都算 1 个字符。
-
^.{5}$R?删除所有恰好 5 字符的行(如hello、a) -
^.{1,3}$R?删除长度 1–3 的行(含单个空格或制表符) -
^.{10,}$R?删除长度 ≥10 的行(注意:.默认不匹配换行符,安全) - 必须取消勾选「. 匹配换行符」,否则
.+可能跨行吞掉多行 - 如果文件含 BOM 或 UTF-8 中文,
.仍正常计数(UTF-8 下中文占 3 字节,但 Notepad++ 正则按 Unicode 码点计,一个汉字 = 1 个.)
删“视觉上短”的行(比如只含缩进或空格)
日志或代码里常见“看着空、其实有空格/制表符”的伪短行,用 ^s*$R? 更准——s 包含空格、 、
、
,比手写 [ ] 稳定得多。
- 别用
^$:它不匹配带空格的行,会漏删 - 如果文件开头有 UTF-8 BOM(
),s不吃它,得先单独搜替换为空 - 删完可能残留连续空行,可补跑一次
R{2,}→R合并
用列编辑手动删“固定位置起始”的短行
当“特定长度”其实是“前 N 列内容一致”(比如每行前 4 位都是 2026),用 Alt+鼠标拖选列编辑比正则更直观、零风险。
- 先关闭「自动换行」(View → Word wrap 不勾选),否则纵向拖选错位
- Alt+鼠标从第 1 列第 1 行拖到第 4 列最后一行,松手后按 Delete
- 这不会删整行,只删选中列范围;若真要删整行,需配合
Ctrl+Shift+K快捷键(光标放在该行任意位置即可) - 此法对混合空格/制表符、中文对齐、YAML 缩进等场景完全无压力
大文件慎用正则,优先标记+手动删
正则在 >10MB 文件里容易卡顿甚至假死,且 ^.{N}$ 类模式无法预览匹配结果——删错了难回滚。
- 推荐流程:Ctrl+F → 填
^.{3}$→ 勾选正则 → 点「全部标记」→ Ctrl+F2(标记所有匹配行)→ 编辑 → 行操作 → 删除已标记行 - 这个组合不依赖替换,不生成临时字符串,内存友好
- 标记后可肉眼扫一遍确认(左侧有蓝色圆点),避免误删含数字的短 ID 行(如
id:7)
^s*$R? 往往比 ^.{1,2}$R? 更接近真实需求。


















