如何使用Notepad进行正则表达式匹配并导出特定规则字符串?
- 内容介绍
- 文章标签
- 相关推荐
本文共计932个文字,预计阅读时间需要4分钟。
基本原理是:
- 必须勾选
搜索模式 → 正则表达式(右下角),否则、$1等反向引用全部失效 - 想提取某部分,得用
()明确捕获,例如匹配 JSON 中的值:"name":s*"([^"]*)",再在替换框填$1 - 如果原文有换行,而你的正则没加
?或没勾选. 匹配换行符,跨行内容直接漏掉 - 替换目标设为
空不等于“导出”,得把结果替换成带分隔符的格式(如$1),再全选复制
如何安全导出所有匹配项(不含上下文)到新文档?
Notepad++ 没有“一键导出匹配项”按钮,但可通过“替换→新建文档”流程实现零误删:
- 先用
Ctrl+F测试正则,确认高亮区域准确(比如d{3}-d{4}-d{4}提取手机号) - 按
Ctrl+H,查找框填正则,替换框填$0($0表示完整匹配,换行便于后续处理) - 点击
全部替换→ 此时原文件被改写,立刻按Ctrl+Z撤销 - 再点
替换全部 → 在新文档中打开(按钮在替换对话框底部,不是默认选项) - 新标签页里就是干净的匹配列表,可直接
Ctrl+A → Ctrl+C复制或另存为 CSV/TXT
提取多组字段(如日志中的时间+级别+消息)怎么写正则?
关键在捕获组顺序和转义控制,避免贪婪匹配吞掉本该分开的字段:
- 典型 Nginx 日志:
123.123.123.123 - - [([^]]+)] "([A-Z]+) ([^"]+)" (d{3}),对应时间、方法、路径、状态码 - 替换为:
$1 $2 $3 $4(用制表符对齐,方便 Excel 导入) - 注意
[^]]+比.*?更可靠——后者在含嵌套括号时可能越界 - 如果某字段可能为空(如无 Referer),用
([^"]*)而非"([^"]*)",否则整个匹配失败 - 中文路径需确保 Notepad++ 编码为
UTF-8(右下角查看),否则[一-龯]类范围会失灵
为什么导出后乱码或字段错位?
八成是编码或分隔符惹的祸,和正则本身无关:
- 源文件是
GBK,但你用 UTF-8 正则匹配中文,部分字节被截断 → 右键文件 →编码 → 转为 UTF-8-BOM再操作 - 替换用了
但 Windows 系统需要,导致粘连 → 统一用 - 字段含制表符或逗号,却用
或,当分隔符 → 改用不可见字符如(替换框输),再用 Excel 文本导入功能指定分隔符 - 导出前没清空剪贴板历史,旧内容混入 → 替换后立即
Ctrl+A → Ctrl+C,不要中间切窗口
实际导出时最易忽略的是:新文档是否继承了原文件编码。即使正则完全正确,用 GBK 文件导出的 UTF-8 新文档,中文仍显示为问号——务必检查右下角编码标识,手动切换一致后再保存。
本文共计932个文字,预计阅读时间需要4分钟。
基本原理是:
- 必须勾选
搜索模式 → 正则表达式(右下角),否则、$1等反向引用全部失效 - 想提取某部分,得用
()明确捕获,例如匹配 JSON 中的值:"name":s*"([^"]*)",再在替换框填$1 - 如果原文有换行,而你的正则没加
?或没勾选. 匹配换行符,跨行内容直接漏掉 - 替换目标设为
空不等于“导出”,得把结果替换成带分隔符的格式(如$1),再全选复制
如何安全导出所有匹配项(不含上下文)到新文档?
Notepad++ 没有“一键导出匹配项”按钮,但可通过“替换→新建文档”流程实现零误删:
- 先用
Ctrl+F测试正则,确认高亮区域准确(比如d{3}-d{4}-d{4}提取手机号) - 按
Ctrl+H,查找框填正则,替换框填$0($0表示完整匹配,换行便于后续处理) - 点击
全部替换→ 此时原文件被改写,立刻按Ctrl+Z撤销 - 再点
替换全部 → 在新文档中打开(按钮在替换对话框底部,不是默认选项) - 新标签页里就是干净的匹配列表,可直接
Ctrl+A → Ctrl+C复制或另存为 CSV/TXT
提取多组字段(如日志中的时间+级别+消息)怎么写正则?
关键在捕获组顺序和转义控制,避免贪婪匹配吞掉本该分开的字段:
- 典型 Nginx 日志:
123.123.123.123 - - [([^]]+)] "([A-Z]+) ([^"]+)" (d{3}),对应时间、方法、路径、状态码 - 替换为:
$1 $2 $3 $4(用制表符对齐,方便 Excel 导入) - 注意
[^]]+比.*?更可靠——后者在含嵌套括号时可能越界 - 如果某字段可能为空(如无 Referer),用
([^"]*)而非"([^"]*)",否则整个匹配失败 - 中文路径需确保 Notepad++ 编码为
UTF-8(右下角查看),否则[一-龯]类范围会失灵
为什么导出后乱码或字段错位?
八成是编码或分隔符惹的祸,和正则本身无关:
- 源文件是
GBK,但你用 UTF-8 正则匹配中文,部分字节被截断 → 右键文件 →编码 → 转为 UTF-8-BOM再操作 - 替换用了
但 Windows 系统需要,导致粘连 → 统一用 - 字段含制表符或逗号,却用
或,当分隔符 → 改用不可见字符如(替换框输),再用 Excel 文本导入功能指定分隔符 - 导出前没清空剪贴板历史,旧内容混入 → 替换后立即
Ctrl+A → Ctrl+C,不要中间切窗口
实际导出时最易忽略的是:新文档是否继承了原文件编码。即使正则完全正确,用 GBK 文件导出的 UTF-8 新文档,中文仍显示为问号——务必检查右下角编码标识,手动切换一致后再保存。

