2

这是我的示例字符串。

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

我想要的输出应该是。

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

顺便说一句,我解决了这个问题,因为我正在使用 Jenkins 浏览我的 CI 中的日志。

有什么帮助吗?谢谢..

4

4 回答 4

5

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

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

于 2012-09-14T13:06:09.503 回答
1

使用以下将从所有日志中删除前缀 [echo] ,

${BUILD_LOG_REGEX, regex="^\[echo] (.*)$", maxMatches=0, showTruncatedLines=false, substText="$1"}

于 2019-03-01T15:03:12.650 回答
0

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

于 2012-09-14T03:46:56.260 回答
-2

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

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

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

于 2012-09-14T03:50:52.543 回答