notepad++默认普通模式下“\n”仅为字面字符“\”和“n”,不匹配换行符;必须切换至扩展模式(用\r\n或\n)或正则模式(勾选“.匹配换行符”,用\r或\r\n)才能正确查找替换换行符。

为什么直接输 \n 查不到换行符
Notepad++ 默认的「普通模式」下,\n 就是两个普通字符——字母 n,根本不是换行符。哪怕你看到文本里有空行,也搜不到。
必须切换搜索模式:
- 要简单替换换行符(比如把换行改成逗号),用「扩展模式」:勾选右下角的
扩展,然后查找框写\r\n(Windows)或\n(Unix/Linux) - 要跨多行匹配复杂结构(比如“
function开头,中间有换行,结尾是{”),必须用「正则表达式」模式,并勾选底部的. 匹配新行 - 别信
\R——它在含 BOM 的 UTF-8 文件里经常失效,老老实实用\r\n最稳
Ctrl + H 里正则模式总不生效?检查这三处
常见现象:写了^\d+却啥也没高亮,也没报错,只是安静地失败。
真正起作用的只有这三点:
- 右下角状态栏必须显示
正则表达式(不是“普通”也不是“扩展”) - 「搜索模式」区域里,
正则表达式是单选框,且是唯一被勾选的项(别同时勾选「扩展」) - 关闭再重开
Ctrl + H对话框——某些操作会悄悄重置模式,不重开就永远卡在旧状态
中文文本里用 \b 为什么总匹配不上
\b 在 Notepad++ 里只认 ASCII 字母、数字和下划线,对中文、全角标点、短横线完全无效。写\b你好\b永远找不到。
替代方案很直接:
- 想精确匹配独立词“你好”,就直接写
你好,不加\b - 需要前后非中文边界(比如排除“你好啊”里的“你好”),用负向断言:
(? - 确保编码是
UTF-8(菜单栏「编码 → 转为 UTF-8」),否则\w、\d可能连英文都识别不准
批量替换多个文件时路径为啥不起作用
Ctrl + Shift + F 打开的「在文件中查找」根本不看当前打开的标签页,也不自动扫描子目录——它只认你亲手填的字段。
填错一个字符就白忙:
-
目录必须是绝对路径,比如C:\work\src,写./src或留空=没反应 -
文件过滤器要严格按格式:*.js;*.ts(分号分隔,不能有空格) - 未保存的新建文件(右上角带星号的标签页)不会参与任何批量操作,先
Ctrl + S存盘再说
真正麻烦的是跨编码混用和 BOM 处理——改完发现中文变方块、缩进错乱,八成是编码没对齐,或者一不留神删了文件开头的\xEF\xBB\xBF。











