2016-09-03 51 views
0

GitLab提供了一個選項,讓徽章代表您當前的代碼覆蓋範圍。它通過查看某個CI腳本的輸出來執行此操作,然後在輸出上運行regex。如何使用正則表達式獲取此表中第一行的第一個數字?

有了這樣說,給定輸出是這樣的:

-------------------|----------|----------|----------|----------|----------------| 
File    | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines | 
-------------------|----------|----------|----------|----------|----------------| 
All files   |  100 |  50 |  100 |  100 |    | 
actions/flight |  100 |  100 |  100 |  100 |    | 
    filter.js  |  100 |  100 |  100 |  100 |    | 
components/Button |  100 |  50 |  100 |  100 |    | 
    Button.jsx  |  100 |  50 |  100 |  100 |    | 
components/Toggle |  100 |  100 |  100 |  100 |    | 
    Toggle.jsx  |  100 |  100 |  100 |  100 |    | 
-------------------|----------|----------|----------|----------|----------------| 

我希望能夠得到的All files:% Stmts值(這應該是在這種情況下,100)。

目前我正與此正則表達式的工作,但它似乎並沒有這樣的伎倆:

/^All files\s*\|\s*(\d*)/ 
+3

你放多模式正則表達式,從而使'^'將匹配行的開頭,而不是一開始的的字符串?嘗試刪除'^'。 [你的正則表達式以多行模式工作](https://regex101.com/r/zZ6uT1/1)。 – 4castle

+0

「它似乎沒有伎倆:」是什麼意思?它給你什麼結果?這與你想要的有什麼不同?你如何使用該正則表達式的結果?這可能是你的問題所在嗎? – jwpfox

回答

1

我有同樣的問題,我們的配置實例GitLab代碼覆蓋率用玩笑的報告。看起來它在全局模式下工作,所以多行解決方案確實不會起作用,就像@ 4castle建議的那樣。

我們最後使用的下面,也符合花車正則表達式:

/All files\s*\|\s*([\d.]+)/ 
相關問題