notepad++批量处理关键在于选对方法:宏适用于结构一致的重复操作,正则需防贪婪匹配并勾选“.匹配新行”,列编辑前提是对齐且开启“显示所有字符”,跨文件替换须勾选“包括子目录”和“创建备份”。

Notepad++ 做文本批量处理,关键不在“能不能”,而在于「选对方法」——宏、正则、列编辑、跨文件替换这四类手段,各自有明确的适用边界。用错场景,轻则多点十几次鼠标,重则误删关键字段。
宏录制适合重复性固定操作
比如每天要把导出的 CSV 每行开头加 INSERT INTO users,末尾加分号,中间字段用单引号包住。这种「每行结构一致+动作完全相同」的情况,宏最稳。
- 必须先打开「显示所有字符」(视图 → 显示符号 → 显示所有字符),确认换行符是
CRLF还是LF,否则录制时按一次↓可能跳过空行,回放就错位 - 录制中避免用鼠标点击行首——改用
Home键,否则在不同长度行上光标位置不可控 - 宏保存后存在
shortcuts.xml里,不是临时内存;但如果你用的是便携版,这个文件在程序同级目录的Notepad++文件夹下,别往%APPDATA%里找
正则替换要防贪婪匹配和换行干扰
想把 name: Alice, age: 25 改成 "name": "Alice", "age": "25",直接写 (.*?):(.*) 看似能用,但遇到 desc: "Alice said: hello" 就会整行捕获到第一个冒号后全部内容。
- 更安全的写法是
([^:]+):\s*([^,]+),用[^:]+限定 key 不含冒号,[^,]+限定 value 不含逗号 - 如果目标跨多行(比如 JSON 的 value 是换行字符串),得先勾选「. 匹配换行符」选项,否则
.*到行尾就停了 -
^\s*$匹配空行时,记得勾选「正则表达式」且不勾选「匹配大小写」,否则带空格的行可能漏掉
列编辑只适用于对齐文本
Alt + 鼠标拖拽选中一列,看起来万能,但前提是「所有目标行在垂直方向上真正对齐」。从 Excel 复制过来的表格、或混用了空格和 Tab 的日志,表面齐,实际光标位置错乱。
- 操作前务必打开「显示所有字符」,确认你选中的确实是纯列区域,而不是被隐藏的 Tab 或空格打断的假列
- 列编辑无法跨折叠代码块生效;如果文档开启了代码折叠,展开后再操作
- 想给每行开头加前缀?用列编辑不如用正则:查找
^(行首锚点),替换为User_,更可靠
跨文件批量替换要注意路径和备份
Ctrl + Shift + F 能搜整个文件夹,但默认不进子目录,也不处理二进制文件——这点容易被忽略,导致配置文件改了,嵌套在 config/ 下的同名文件却漏了。
- 搜索范围选「指定目录」后,手动勾选「包括子目录」,否则只扫当前层
- 替换前务必勾选「在替换前创建备份」,Notepad++ 会在原文件名后加
.bak,这个开关默认关闭 - 路径中含空格或中文时,命令行调用 Notepad++ 打开多个文件要用英文双引号包裹路径,例如:
"C:\Program Files\Notepad++\notepad++.exe" -r "D:\my project\*.txt"
真正卡住人的,往往不是功能不会用,而是没意识到「显示所有字符」这个开关的存在——它不开,你就永远在猜空格和 Tab 哪里捣鬼,正则怎么调都不对,宏一回放就偏移。这个细节比任何技巧都优先。











