能删,但必须匹配整行加换行符,否则只删词、留空行甚至误跨行;Notepad++ 无“删行”按钮,本质是用「整行(含\R)替换为空」实现删除,推荐^.keyword.\R格式,\R自动兼容各系统换行符。

能删,但必须匹配整行加换行符,否则只删词、留空行,甚至误跨行。
为什么error直接替换会失败
直接搜error再替换成空,只是把那几个字母抹掉,原行还在——变成空行,不是删除。Notepad++ 没有“删行”按钮,本质是靠「把整行(含换行符)替换成空」来实现删除。
-
^error$只匹配内容**刚好是**error的单行,日志里[ERROR] connection timeout这种完全不中 - 漏写换行符(比如没加
\r?\n或\R),替换后必然残留空行 - 误勾了
. 匹配换行符,.*就会吞掉多行,一删一大片
用^.*keyword.*\R删整行最稳
\R是 Notepad++ 扩展正则,自动兼容 \r\n(Windows)、\n(Unix/Linux)、\r(旧 Mac),比手写\r?\n更可靠。
- 打开
Ctrl + H→ 勾选「正则表达式」→ **取消勾选「. 匹配换行符」** - 查找目标填:
^.*debug.*\R(删含debug的行)或^.*TODO.*\R - 替换为:留空(什么也不填)
- 光标必须放在文件开头,否则「全部替换」只从当前光标往下生效
删含中文或多个关键词的行
中文字符在 Unicode 里落在 \u4e00-\u9fff 范围,多关键词用(?:a|b|c)语法包裹。
- 删所有含任意中文的行:
^.*[\u4e00-\u9fff].*\R - 删含
错误或警告的行:^.*(?:错误|警告).*\R - 关键词是常见字(如
的、人)时,务必先点「查找全部」预览右侧结果窗格,确认行号和内容再动手 - 代码里只想删注释行中的关键词?加上下文锚点,例如 Python 注释:
^.*#.*FIXME.*\R
别依赖「全部替换」,先用「标记全部」保命
大文件或关键词太泛时,「全部替换」一旦点错没法撤回——Notepad++ 删除操作不可撤销,也没回收站。
- 先按
Ctrl + F→ 输入^.*keyword.*\R→ 勾选正则 → 点「标记全部」 - 右侧「结果」窗格列出所有匹配行号,逐行核对是否真要删
- 确认无误后,再切到
Ctrl + H做替换;或者用菜单「搜索 → 标记 → 删除已标记行」(这个路径更直观,且不依赖正则替换逻辑) - 操作前务必保存副本,尤其处理配置文件或日志原始数据
真正麻烦的不是写不对正则,而是删完才发现漏掉了\R,留下一堆空行还得再扫一遍;或者关键词太宽泛,一删删掉半份代码——预览和备份比技巧更重要。


















