2015-08-19 32 views

回答

3

使用String.split()與統計參數來管理的commitid破折號:

$x = "0.3.1-15-g3b885c5" 
$tag = $x.split("-",3)[0] 
$commitid = $x.split("-",3)[-1] 
+1

FYI,可以在一個單一的表達來實現:'$一個,$ B = 「0.3.1-15-g3b885c5」 .split( ' - ')[0,2] ' – Richard

+0

@Richard你是對的,我只是想顯示使用'-1'來得到最後的索引。 –

+1

在這裏使用'split()'與正則表達式無關。我喜歡正則表達式,但有時候一個不太「複雜」的解決方案更適合將來的可讀性和維護性 - 原作者可能會理解正則表達式,但下一個接受腳本支持的人可能不會。對於更多涉及的文本解析和處理,我去正則表達式 - 但對於這樣一個簡單的分裂,我堅持'split()' – alroc

1

如果破折號被允許在標籤我不記得,所以我會認爲他們是,但不會出現在最後兩場。

因此:

if ("0.3.1-15-g3b885c5" -match '(.*)-\d+-([^-]+)') { 
    $tag = $Matches[1]; 
    $commitId = $Matches[2] 
} 
相關問題