如果字符串

时间:2017-10-15 17:18:55

标签: java jenkins groovy

如果括号出现在字符串中,Jenkins Groovy Postbuild插件manager.getLogMatcher正则表达式返回null

Jenkins控制台输出包含字符串:

(origin/pull-requests/1365/merge)

我需要从字符串1365中获取数字并使用:

manager.getLogMatcher("^origin/pull-requests/(.*?)/merge*").matches()

它失败了:

Java.lang.NullPointerException: Cannot invoke method matches() on null object

但如果我删除括号:

origin/pull-requests/1365/merge

一切都很好。

1 个答案:

答案 0 :(得分:2)

如果查看sources,您会发现您调用的方法最终可能会返回null引用。由于你的正则表达式无效,我猜这是这种情况。您需要考虑括号 - 特别是如果正则表达式以^开头。以下两个应该有效:

"^\\(origin/pull-requests/(.*?)/merge.*"
^\\(origin/pull-requests/(.*?)/merge\\)