我正试图从Jenkins日志中获取应用程序的版本,并将其发送到电子邮件。
日志(其中一部分)为:
[INFO] Image 03127cdb479b: Layer already exists
[INFO] Image 9c742cd6c7a5: Layer already exists
[INFO] Image 1f8a8b50f407: Pushing
[INFO] Image 1f8a8b50f407: Pushed
[INFO] 4.2.3-202211071000: digest: sha256:[large_number] size: 2415
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
我只需要4.2.3-202211071000部分,因此我正在执行:
${BUILD_LOG_REGEX, regex="(?<=\[INFO])(.*)(?=: digest)", maxMatches=1, showTruncatedLines=false, substText="$1"}
但这将返回整个行:
[INFO] 4.2.3-202211071000: digest: sha256:[large_number] size: 2415
不仅是“[INFO]“和“:我该怎么做呢?
3条答案
按热度按时间1l5u6lss1#
尝试以下模式:
(?<=\[INFO\] )[-\d\.]+(?=:)
有关RegEx的详细信息,请参见here
xn1cxnb42#
检查以下模式。
gz5pxeao3#
我可以通过使用另一个令牌并使用日志的另一行进行匹配来实现这一点: