gpt4 book ai didi

java - Jenkins 控制台部分 : What Java regex will trigger on string ERROR but not on string %%ERRORLEVEL%%?

转载 作者:行者123 更新时间:2023-12-01 10:49:26 36 4
gpt4 key购买 nike

我正在 Windows 服务器上使用 Jenkins 控制台部分插件 [1]。它非常适合在我的日志上制作一个漂亮的左侧导航栏。

当然,我希望任何错误消息都会导致节标题,例如;

Assert-PathExstsNotTooLong : ERROR, The path does not exist: E:\P......Oops! Error, please do not do that.

消极的是,我希望能够避免拼写出的执行模板导致新的节标题,例如下面的内容。

[workspace] $ cmd.exe /C " c:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /p:Configuration=Debug /p:VisualStudioVersion=12.0 "E:\Program Files (x86)\Jenkins\jobs\M.sln"

使用此处关于 SO [2] 和您推荐的测试仪 [3] 的引用,我想出了以下内容,但它不起作用?

^(?=(.*([Ee][Rr][Rr][Oo][Rr] ).*))(?!(%%ERRORLEVEL%%))

使用 Regex101 令人惊叹的测试器,带有 JS 风格,我使用上面的内容作为输入,并获得了这些测试字符串和输出。第二行比赛信息也许解释了我的问题,但我不明白。

test-strings = help error you should see mei am %%errorlevel%% againi am not a sectionmatch-info; 1.  `help error you should see me`2.  `error `

有什么建议吗?谢谢!

1.[] ;根据其文档,该插件使用 Java Regex ; ; ; ; X.折叠控制台部分插件 - Jenkins - Jenkins Wiki ; ; https://wiki.jenkins-ci.org/display/JENKINS/Collapsing+Console+Sections+Plugin

2.[];要避免的关于字符而不是字符串的正则表达式示例; ; ; ; X.java - 正则表达式包括和排除特殊字符 - 代码日志; Regular expression include and exclude special characters

3.[]; ; ; ; ; X.在线正则表达式测试器和调试器:JavaScript、Python、PHP 和 PCRE; ; https://www.regex101.com/#javascript

最佳答案

(我还不能添加评论,否则我会直接询问,但你的拼写消息模板示例不包含文本 %%ERRORLEVEL%% ,但我认为它应该是一个带有%%ERRORLEVEL%% 中间的某个地方。另外,由于这个例子不太正确,我无法准确说出你所说的“不工作”是什么意思)

你的问题是你的正则表达式匹配 ERROR_ (带空格)文本中的任何位置,除了文本恰好的位置 %%ERRORLEVEL%% 。我认为你可以这样写:

^(?=(.*([Ee][Rr][Rr][Oo][Rr])))(?!.*(%%ERRORLEVEL%%)).*
  • 您真的只需要匹配 ERROR_ (带空格)相对于 ERROR (是否有空格)?如果是前者,那么您已经排除了 %%ERRORLEVEL%% ,你可以使用 .*(?i:ERROR ).*作为完整的正则表达式。
  • 折叠控制台部分插件使用 Java regular expressions ,所以您可以使用(?i:ERROR)匹配ERROR不区分大小写。
  • 您需要尾随 .* %%ERRORLEVEL%% 的负向前瞻原子之前和之后,否则只会排除完全匹配
  • 插件的文档没有说明模式是否必须完全匹配一行,或者是否只匹配行内的文本。如果它与该行完全匹配,则前导 ^没有必要,但不会造成任何伤害。
  • 您已捕获 ERROR 周围的括号和%%ERRORLEVEL%% 。如果您没有对该文本执行任何操作,则不需要这些括号。

以下正则表达式将与 ERROR 中的任何一个匹配任何行, Error , error等,除了 %%ERRORLEVEL%% 中的任何行, %%ErrorLevel%% , %%errorlevel%%等等

^(?=.*(?i:ERROR))(?!.*(?i:%%ERRORLEVEL%%)).*

关于java - Jenkins 控制台部分 : What Java regex will trigger on string ERROR but not on string %%ERRORLEVEL%%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004732/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com