利用Sublime Text高级搜索(Regex Capture)进行异常日志特征提取

P粉328763957

P粉328763957

2026-08-03

758人浏览

原创

必须用^.exception.$等带锚点的正则才能匹配整行,否则仅高亮单词;跨文件搜索需明确填写where路径并勾选.*启用正则,多行堆栈提取须开启match newlines。

利用sublime text高级搜索(regex capture)进行异常日志特征提取

怎么用 ^.*Exception.*$ 提取完整异常行

不加 ^$Exception 只会高亮单词本身,不是整行;复制出来全是碎片。必须写成 ^.*Exception.*$ 才能确保匹配整行,后续才能用 Ctrl + L(Windows/Linux)或 Cmd + L(macOS)一键选中全部匹配行。

  • 日志里常见变体:也得覆盖 ^.*ERROR.*$^.*Traceback.*$,可合并为 ^.*(Exception|ERROR|Traceback).*\$
  • 区分大小写敏感时,勾选查找面板里的 “Aa” 图标;生产日志常全大写,ERRORerror 更可靠
  • 如果日志带时间戳前缀(如 [2026-06-30 14:20:01]),正则仍有效——.* 自动吞掉前面内容

Find in Files 跨文件提取异常时,Where 栏不能留空

Ctrl + Shift + FWhere 栏留空 = 只搜当前文件,不是整个项目。很多人以为点了就扫全盘,结果漏掉关键日志。

Sublime Text Build Linux版
Sublime Text Build Linux版

Sublime Text Linux x86-64 deb 安装包。官方也提供 rpm、tar.xz 和软件源安装方式。

下载
  • ./logs/**/*.loglogs/ 明确限定路径,避免拖慢响应甚至卡死
  • 务必勾选右下角 .* 图标启用正则,否则 ^.*Exception.*$ 当字面量处理,完全不生效
  • 搜索结果页右键 → Copy All,粘贴后每行带前缀如 app.log:456:java.lang.NullPointerException;后续用 Ctrl + H 替换 ^[^:]+:\d+:\s* 为空,得纯文本

捕获组提取堆栈关键字段,替换时必须用 $1 不是 \1

想从 Caused by: java.lang.IllegalArgumentException: Invalid ID 中只取异常类名,得用捕获组,但替换语法容易错。

  • 查找: Caused by:\s+([^\s:]+) —— () 包住目标部分
  • 替换栏填 $1,不是 \1;填 \1 会原样输出字符串 \1
  • 若要提取多段(如类名 + 消息),用 Caused by:\s+([^\s:]+):\s+(.*),替换为 $1\t$2 制表分隔
  • 跨行堆栈(含 at com.example.Xxx.method(Xxx.java:123))需勾选 Match newlines 或在正则开头加 (?s)

多行异常块去重:用 ^(.*Exception.*)$(\n^.*?$)* 匹配完整块

单行匹配会把同一个异常的多行堆栈拆开,导致重复分析。真正要的是“一个异常起始行 + 后续所有缩进/空行/堆栈行”的原子块。

  • 正则:^(.*Exception.*)$(\n^.*?$)* —— 第一组捕获起始行,第二组非贪婪捕获后续任意行
  • 必须勾选 Match newlines,否则 \n 不被识别
  • 匹配后 Ctrl + Enter(Windows/Linux)选中全部块,再 Ctrl + Shift + K 删除重复块,或 Ctrl + C 单独保存每个异常实例
  • 注意:该正则对无换行的单行异常也兼容,但若日志用空行分隔异常块,可改用 ^(.*Exception.*)$(\n(?=.*Exception)|\n)+ 更精准
实际处理百万行日志时,最容易被忽略的是 Match newlines 开关和 Where 路径限定——没开前者,跨行匹配永远失败;没填后者,Find in Files 形同虚设。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

sublime sublime text

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

2023.08.03

596

5

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

8

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

3

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

7

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

4

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

2

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

火山引擎云服务器使用教程
火山引擎云服务器使用教程

火山引擎云服务器使用教程适合第一次购买、部署和管理云服务器的用户参考。本专题整理控制台入口、实例创建、地域和配置选择、系统镜像设置、安全组放行、远程连接、网站部署、续费计费和常见连接失败问题,帮助用户快速完成云服务器基础使用流程。

2026.08.04

5

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程