You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则部分无法在邮件中提取内容,求助从Jenkins构建日志提取指定信息

Jenkins日志提取问题:BUILD_LOG_REGEX无法匹配统计块的解决方案

问题根源

你当前使用的正则表达式^.*?======================================================.*?$存在模糊匹配的问题,.*?可能会匹配到分隔线以外的内容,或者因为Jenkins基于Java的正则引擎对锚点^/$的严格匹配规则,导致无法精准定位到目标分隔线。

修复方案

1. 使用精准匹配的正则表达式

目标分隔线是50个连续的等号,直接写死匹配规则,避免模糊匹配:

<div class="container-info">
    <pre style="COLOR: #8B0000; ">${BUILD_LOG_REGEX,regex="^={50}$",linesAfter=3, maxMatches=1, showTruncatedLines=false}</pre>
</div>
  • 替换<span>为<pre>标签,能保留提取内容的原始换行格式,避免统计信息在邮件里挤成一团。
  • ^={50}$严格匹配单独一行的50个等号,不会误匹配其他包含等号的行。

2. 兼容带空白字符的分隔线

如果日志里的分隔线前后有空格、制表符或换行符,调整正则匹配前后的空白:

<div class="container-info">
    <pre style="COLOR: #8B0000; ">${BUILD_LOG_REGEX,regex="^\s*={50}\s*$",linesAfter=3, maxMatches=1, showTruncatedLines=false}</pre>
</div>
  • \s*匹配任意数量的空白字符(包括空格、制表符、换行),适配日志格式的微小差异。

3. 适配带前缀的分隔线

如果分隔线前有日志前缀(比如时间戳、日志级别),需要把前缀也加入正则,例如日志格式为:

[2024-05-20 10:00:00] ======================================================

对应的正则要改成:

<div class="container-info">
    <pre style="COLOR: #8B0000; ">${BUILD_LOG_REGEX,regex="^\[.*?\]\s*={50}$",linesAfter=3, maxMatches=1, showTruncatedLines=false}</pre>
</div>

测试建议

在Jenkins的「构建日志」页面,手动搜索={50},确认目标分隔线的格式是否和正则匹配,再调整邮件模板中的配置。

内容的提问来源于stack exchange,提问作者bhagwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:45:33