必须启用正则表达式模式并勾选“.匹配新行”才能跨行匹配;捕获组用()定义,替换用\1、\2调序,禁用$1或\01;中文慎用\b,换行符需手动确认类型。

确认正则模式并启用跨行匹配
Notepad++ 正则替换互换内容前,必须确保右下角状态栏显示 正则表达式,否则 \1、^、$ 全部按字面处理,不报错但无效。若显示“普通”或“扩展”,立刻手动切换;老版本(v7.8 及以下)不支持 \R,跨行操作前需先用 视图 → 显示符号 确认换行符类型:Windows 是 \r\n,Unix/macOS 是 \n。需要跨行匹配时,务必勾选 . 匹配新行 复选框,否则 . 无法穿透换行,^ 和 $ 也仅作用于单行。
用捕获组定位要互换的两段内容
位置互换本质是“先抓再放”,靠 () 定义两个捕获组,再用 \1、\2 在替换栏调序。注意:\1~\9 是唯一合法引用方式,$1 或 \01 会失效;嵌套括号也严格按左括号出现顺序编号。
- 例如把
AB列\tCD列换成CD列\tAB列:查找(AB列)\t(CD列),替换为\2\t\1 - 若想把每行开头的
prefix_和结尾的_suffix对调:查找^(prefix_)(.*?)(_suffix)$,替换为\3\2\1(需勾选. 匹配新行且确保行内无多余换行) - 中文场景慎用
\b:它在 Notepad++ 中对中文边界不可靠,改用(? 或直接写空格/标点限定
处理常见干扰:空格、换行、特殊字符转义
实际文本常含干扰项,不处理会导致捕获失败或错位:
-
*、+、?、.、^、$、[、]、(、)、{、}、|、\都是元字符,要匹配字面量必须加反斜杠转义,如匹配两个星号需写\*\* - 想保留原换行结构但又需跨行捕获?用
\R(v7.9+ 推荐)替代硬写\r\n或\n;若文件含 BOM(UTF-8 with BOM),\R可能失灵,临时另存为UTF-8(无 BOM)再操作 - 行首/行尾空格影响捕获范围?先清理:查找
^\s+替换为空,或\s+$替换为空,避免空格吃掉边界锚点
验证与分步执行防丢数据
互换类操作风险高,一错就可能整块错位或丢失内容。绝不能跳过验证步骤:
- 先关闭“全部替换”,用
查找全部看命中的行数和高亮位置是否符合预期 - 用
\0在替换栏预览原始匹配内容,确认捕获组切分正确(例如查找(a)(b)时,\0应显示ab,\1显示a) - 选中一小段典型文本(Ctrl + 鼠标拖选),点击
在选区中替换,观察效果后再推及全文 - 操作前务必手动备份——Notepad++ 老版本存在替换丢内容的风险,尤其含
\r\n的复杂替换
最易被忽略的是捕获组编号逻辑和换行符的实际格式:你以为的 \n 可能是 \r\n,你写的 (first)(second) 若中间有未转义的 . 或 *,就可能吞掉不该吞的内容。动手前,先用 显示符号 看一眼真实结构。











