如果你這樣做:git的描述--long拆分使用PowerShell的字符串,以獲得第一和最後一個元素
你:0.3.1-15-g3b885c5
那上面的字符串的含義:
標籤 - CommitDistance-CommitId(http://git-scm.com/docs/git-describe)
如何拆分字符串以獲取第一個(Tag)和最後一個(CommitId)元素?
如果你這樣做:git的描述--long拆分使用PowerShell的字符串,以獲得第一和最後一個元素
你:0.3.1-15-g3b885c5
那上面的字符串的含義:
標籤 - CommitDistance-CommitId(http://git-scm.com/docs/git-describe)
如何拆分字符串以獲取第一個(Tag)和最後一個(CommitId)元素?
使用String.split()
與統計參數來管理的commitid破折號:
$x = "0.3.1-15-g3b885c5"
$tag = $x.split("-",3)[0]
$commitid = $x.split("-",3)[-1]
如果破折號被允許在標籤我不記得,所以我會認爲他們是,但不會出現在最後兩場。
因此:
if ("0.3.1-15-g3b885c5" -match '(.*)-\d+-([^-]+)') {
$tag = $Matches[1];
$commitId = $Matches[2]
}
FYI,可以在一個單一的表達來實現:'$一個,$ B = 「0.3.1-15-g3b885c5」 .split( ' - ')[0,2] ' – Richard
@Richard你是對的,我只是想顯示使用'-1'來得到最後的索引。 –
在這裏使用'split()'與正則表達式無關。我喜歡正則表達式,但有時候一個不太「複雜」的解決方案更適合將來的可讀性和維護性 - 原作者可能會理解正則表達式,但下一個接受腳本支持的人可能不會。對於更多涉及的文本解析和處理,我去正則表達式 - 但對於這樣一個簡單的分裂,我堅持'split()' – alroc