从BUILD_LOG_REGEX提取的行中删除“[string]”

时间:2012-09-14 03:44:26

标签: jenkins

这是我的示例字符串。

[echo] SampleProject解决方案目前有85%的代码覆盖率。

我想要的输出应该是。

SampleProject解决方案目前有85%的代码覆盖率。

顺便说一句,我之所以这样,是因为我正在使用Jenkins浏览我的CI中的日志。

有任何帮助吗?感谢..

4 个答案:

答案 0 :(得分:2)

您可以尝试使用substText令牌中的BUILD_LOG_REGEX参数替换与regex匹配的文字

  

新的可选arg:$ {BUILD_LOG_REGEX,regex,linesBefore,linesAfter,maxMatches,showTruncatedLines, substText },允许用文本替换匹配的正则表达式。当文本包含对捕获组的引用(即$ 1,$ 2等)

时,这尤其有用

答案 1 :(得分:0)

\[[^\]]*\]将匹配您要删除的位。只需使用字符串替换函数将该位替换为空字符串。

答案 2 :(得分:0)

在下面使用将删除所有日志中的前缀[echo]

$ {BUILD_LOG_REGEX,regex =“ ^ \ [echo](。*)$'',maxMatches = 0,showTruncatedLines = false,substText =” $ 1“}

答案 3 :(得分:-1)

安德鲁有正确的想法,但使用Perl风格的正则表达式语法(包括Java的内置正则表达式引擎),你可以做得更好:

str.replaceAll("\\[.*?\\]", "");

(即,使用匹配的表达式\[.*?\]?指定最小匹配:因此它将在找到的第一个]完成匹配。)