正则表达式错误与 Jenkins Pipeline 电子邮件分机



我正在构建 Jenkins 管道脚本并发送有关构建状态的电子邮件。

stage('Sending email') {
echo "${FINAL_EAR}"
emailext body: '''$DEFAULT_CONTENT
The cause of the build:
${BUILD_CAUSE}
current build changes:
${CHANGES, showPaths=true, format="%a: %r %p \n--\"%m\"", pathFormat="\n\t- %p"}
Changes since the last build:
${CHANGES_SINCE_LAST_UNSTABLE}
Artifact location:
${BUILD_LOG_REGEX, regex="^`\\$\\{FINAL_EAR\\}' ->", showTruncatedLines=false}''', replyTo: '$DEFAULT_REPLYTO', subject: '$DEFAULT_SUBJECT', to: 'blah@blah.com'
}

在上面的代码片段中,我遇到了regex="^'\\$\\{FINAL_EAR\\}' ->">的问题。正则表达式无法匹配正确的值,回显打印值正确。我尝试转义(有或没有($、{ 和 },这在正则表达式中具有特殊含义,但它仍然不起作用。

这是我收到电子邮件">java.util.regex.PatternSyntaxException:索引 1 附近的非法重复 ^${FINAL_EAR}' ->^" 时看到的错误

注意:实际日志包含 '、' 和 ->,所以我需要在正则表达式中使用这些字符。提前感谢您的帮助。

我不是说我得到了答案,而是寻找确切的"${FINAL_EAR} ->"我使用了正则表达式,如下所示

${BUILD_LOG_REGEX, regex="^`[a-zA-Z0-9-.]*' ->", showTruncatedLines=false}''', replyTo: '$DEFAULT_REPLYTO', subject: '$DEFAULT_SUBJECT', to: 'blah@blah.com'

我不想让这个问题得不到回答,所以想提供我的实施方式。

最新更新