2014-01-14 45 views
0

我有這樣的正則表達式:${BUILD_LOG_REGEX,regex="(?=.*?Environment)(?=.*?Total).*$"}正則表達式價值線

這個表達式的輸出是這樣的:

[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]

我想修改這個正則表達式,所以我可以只有看到這些值作爲輸出:

Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)

有人可以幫助找出合作從日誌文件中爲此LINE修改REGEX?

+0

該行有什麼特別之處?它與其他人有什麼不同? –

+0

關於第二行的特殊情況是...我想刪除介於此TAG []之間的其他東西...我只想打印實際行,而不是打印所有Junk值,如[...截斷14行...] [java] ..我不希望這被打印。 – user886614

回答

2

恐怕你可能有更具體的在這裏,因爲我可以匹配你問的是這樣的:

E.*?\)

鏈接:Regex101.com Example

0

編輯:這答案指定了解決方案,因爲問題最初被標記爲Java問題。此標籤已被刪除。

如果您只是想刪除方括號內的任何文本,只需簡單調用下面的代碼即可生成您正在查找的結果。

String source = "[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]"; 
String extract = source.replaceAll("\\[.*?\\]", "").trim(); 

結果extract保持的值:

"Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)" 

Java代碼以上將與空字符串替換方括號中的字符串的所有匹配(基本上去除它們),然後修整從任何不必要的空白結果。

正則表達式:

\[.*?\],其中.*,以其周圍的方括號中,是懶惰(非貪婪地)相匹配。

Regular expression visualization

+0

我不想在這裏使用JAVA API ...我想單個REGEX可以爲我做...目前我有這個REGEX ---「(?=。*?Environment)(?=。*總共)。* $「這是打印我這一行..... [...截斷14行...] [java]環境:XYZ總數(通過:1失敗:0未完成:0延遲:0手動驗證:0)[...截斷14行...] ...我想修改我的正則表達式,所以我可以看到你用Replace語句打印它的輸出。 – user886614

+0

如果您不想使用Java API,我建議您將來不要使用[tag:Java]標籤標記問題。如果不使用Java API,您目前如何執行這些正則表達式? –

+0

這是詹金斯電子郵件功能的一部分,我在哪裏構建日誌,我正在嘗試使用Jenkins插件使用REGEX解析此文本。 – user886614