2017-09-26 66 views
1

如果一些條件成立,我使用Jenkins文本查找器插件來將構建標記爲失敗。其中一個串上是爲了紀念構建更大的零失敗:如何正確應用正則表達式使用OR condtion?

0 errors | 0 warnings | 0 notes 

即時通訊使用:

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

,我預計,如果錯誤,警告或註釋號碼之間的1 -9一個失敗必須發生。然而測試該規則只有在所有至少1

如何管理正則表達式,以匹配工作:

1 errors | 0 warnings | 0 notes 

,該字符串中的至少一個必須是1

我測試了在:

https://regex101.com/

+2

也許,你不需要那麼長的正則表達式。試試'\ b [1-9] \ s *(?:錯誤|警告筆記)' –

+0

可能有超過9個錯誤/警告/註釋,在這種情況下,您也可以嘗試使用:'[ 1-9] \ d * \ s *(?: errors | warnings | notes)'[DEMO](https://regex101.com/r/Ywt2k8/2) – Gurman

+0

甚至'\ b0 * [1-9] \ d * \ s *(?: errors | warnings | notes)' –

回答

3

看來你想,如果它包含一個整數,一個以前是大於0匹配字符串y三個字符串:errors,warningsnotes

使用

[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) - 子串之一。
+0

注意:如果有「註釋」(或者「註釋」),我認爲它不可能*標記Jenkins構建爲「失敗」甚至可能是「警告」)。我建議在這種情況下將構建標記爲「不穩定」。 –