这是我的示例字符串。
[echo] SampleProject解决方案目前有85%的代码覆盖率。
我想要的输出应该是。
SampleProject解决方案目前有85%的代码覆盖率。
顺便说一句,我之所以这样,是因为我正在使用Jenkins浏览我的CI中的日志。
有任何帮助吗?感谢..
答案 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("\\[.*?\\]", "");
(即,使用匹配的表达式\[.*?\]
。?
指定最小匹配:因此它将在找到的第一个]
完成匹配。)