notepad++“只显示搜索结果”实为标记+折叠的视觉过滤,非真正隐藏:先ctrl+f→标记页输入关键词并“标记全部”,再选“显示仅标记的行”;误选“隐藏已标记的行”会反向隐藏,需取消隐藏恢复。

Notepad++ 不能真正“隐藏非匹配行”,所谓“只显示搜索结果”,实际是通过标记 + 折叠实现的视觉过滤,不是删除也不是动态视图切换。核心操作只有两步:先标记目标行,再启用「显示仅标记的行」。
怎么用 Ctrl+F 标记含关键词的行
这是整个流程的前提,很多人卡在这一步就失败了——没标记,后面所有折叠都无效。
- 按
Ctrl+F打开查找面板,切到「标记」标签页 - 输入你要保留的关键词,比如
ERROR或正则error|warn - 勾选「正则表达式」(如果用了
|、^、$等);区分大小写按需勾选 - 点击「标记全部」:左侧会出现蓝色圆点,表示该行已被标记
- ⚠️ 常见错误:在「查找」标签页点「查找全部」——那只会弹出结果窗口,不会标记任何行
为什么点了「隐藏已标记的行」反而看不到内容
菜单项名字有迷惑性。「隐藏已标记的行」和「显示仅标记的行」是互斥操作,且效果完全相反。
- 要“只显示匹配行”,必须选 视图 → 隐藏行 → 显示仅标记的行
- 如果误选「隐藏已标记的行」,结果是把带蓝点的行全藏了,剩下的是你不想要的——整篇变空或只剩几行,别慌,立刻再进菜单选「取消隐藏所有行」即可恢复
- 这个折叠状态不保存,关文件再打开就失效;也不影响查找替换范围,未显示的行依然参与
Ctrl+H替换
正则匹配多条件或排除某类行怎么写
纯文本搜不了“包含 A 或 B”“不含 C”,必须靠正则 + 标记,但语法有坑。
- 含
error或warn:在标记页勾选正则,填error|warn - 不含
DEBUG:用负向先行断言^(?!.*DEBUG).*$(注意不要勾选「. 匹配换行符」,否则失效) - 匹配整行只有数字:
^\d+$;含数字但不强制独占:^.*\d+.*$ - 元字符如
.、+、[必须转义:error\.log,否则error.log会匹配errorXlog - 大小写不敏感加前缀:
(?i)todo
删掉非匹配行比隐藏更彻底,但风险更高
如果你不需要保留原始结构,只是清洗日志或导出子集,直接删除更干净——但不可逆,务必先备份。
- 查找框填:
^(?!.*NEXT WAKEUP).*$\R?(保留含NEXT WAKEUP的行) -
^和$匹配行首尾,不包括换行符,所以必须加\R?吃掉换行,否则最后一行可能残留空行 -
(?!.*pattern)是负向断言,匹配的是“要删的行”,不是“要留的行”——逻辑容易反着写 - 大文件慎用:删除操作会重绘全文,卡顿明显;而「显示仅标记的行」只是折叠,响应更快
真正容易被忽略的是:Notepad++ 的「隐藏行」功能完全依赖手动标记,没有自动刷新机制。改了文本后,旧标记不会更新,得重新标记再刷新显示。临时过滤可以,长期维护别当真。











