2017-02-22 142 views
0

我有一個字符串,例如值22_ABCD 現在我只需要在我的參數ABCD。什麼是在PowerShell中做到這一點的最佳方法?Powershell字符串分離

是否需要使用Split()然後取$ stringvalue = Split [1]?或者有沒有在PowerShell中的功能,這樣做?

+0

將所有字符串具有相同的格式(## _ AAAA)?請提供一些細節。 –

回答

2

Split是一種方法來做你想做的事情,可以像這樣使用......其中括號之間的值是你想要用於分割的字符。

$string = "22_ABCD" 
$string.Split("_") 

運行上面的代碼輸出包含兩個項的數組:

22 
ABCD 

然後可以參考與[1]陣列中的第二項([0]是第一項)是這樣的:

$string.Split("_")[1] 

哪個輸出第二項:

ABCD 
+0

太棒了,不知道你可以直接分割字符串。那很棒 :) – Kevin

0

如果您正在尋找字母數字字符而不是下劃線後面的下一組字符,則正則表達式是一種可能性。

$x = '22_ABCD_FTG_3' 
[regex]::match($x,'([A-Z)]+)').Groups[1].Value 
0
#method 0, with split operator 
$Elements="22_ABCD" -split "_" 
$Elements[0] 
$Elements[1] 

#method 1, with split member 
$Elements="22_ABCD".Split('_') 
$Elements[0] 
$Elements[1] 

#method 2, with split member and direct affectation 
$Element1, $Element2="22_ABCD".Split('_') 
$Element1 
$Element2 

#method 3, with ConvertFrom-String 
$Elements="22_ABCD" | ConvertFrom-String -Delimiter "_" -PropertyNames "Element1", "Element2" 
$Elements.Element1 
$Elements.Element2 

#method 4, with ConvertFrom-Csv 
$Elements="22_ABCD" | ConvertFrom-Csv -Delimiter "_" -Header "Element1", "Element2" 
$Elements.Element1 
$Elements.Element2 

#method 5, with regex 
$Elements=[regex]::split("22_ABCD", '_') 
$Elements[0] 
$Elements[1]