如何使用OR condtion正确应用正则表达式?

时间:2017-09-26 10:41:14

标签: regex

我正在使用Jenkins文本查找程序插件,以便在某些条件为真时将构建标记为失败。其中一个字符串必须大于零才能将构建标记为失败:

0 errors | 0 warnings | 0 notes

我正在使用:

^[1-9]+ *errors [|] [1-9]+ *warnings [|] [1-9]+ *notes$

我希望如果错误,警告或注释的数量在1-9之间,则必须发生故障。但是,测试该规则仅在ALL至少为1时才有效。

如何管理正则表达式以便匹配:

 1 errors | 0 warnings | 0 notes

至少有一个字符串必须为1.

我测试了它:

https://regex101.com/

1 个答案:

答案 0 :(得分:3)

如果字符串在三个字符串中的任何一个之前包含一个大于0的整数,那么您似乎想匹配一个字符串:errorswarningsnotes

使用

[1-9][0-9]*\s*(?:errors|warnings|notes)

请参阅regex demo

注意:如果号码只能是一位数字,请使用[1-9]\s*(?:errors|warnings|notes)

<强>详情

  • [1-9] - 19数字
  • [0-9]* - 任意0+位数
  • \s* - 0+空格 - (?:errors|warnings|notes) - 其中一个子字符串。