我有代碼,它將字符串拆分爲數組。所以你能幫助我,爲什麼這是行不通的?不能在PowerShell上拆分
$var="test.1->test.2"
$arr=$var.Split("->")
$arr[0]#show correct: "test.1"
$arr[1]#doesn't show...
我有代碼,它將字符串拆分爲數組。所以你能幫助我,爲什麼這是行不通的?不能在PowerShell上拆分
$var="test.1->test.2"
$arr=$var.Split("->")
$arr[0]#show correct: "test.1"
$arr[1]#doesn't show...
它的工作原理。但它確實將字符串拆分爲「 - 」或「>」,因此$arr[1]
在「 - 」和「>」之間具有空字符串,「test.2」位於$arr[2]
中。
所以,你可以:
$var="test.1->test.2"
$arr=$var.Split("->")
write-host $arr[0]
write-host $arr[2]
或:
$var="test.1->test.2"
$arr=$var.Split("->") | select -First 1 -Last 1
write-host $arr[0]
write-host $arr[1]
或類似的東西:
$var="test.1->test.2"
$arr= $($var -replace "->","#").Split("#")
write-host $arr[0]
write-host $arr[1]
字符串Split()
方法將字符數組和分割字符串數組中的任何字符。 Powershell還有一個帶有分隔符的-split
運算符。我想你可能想在這裏使用-split
運算符。
以下是區別。 「 - 」和「>」,第二對分割「 - >」在所述第一分割:
PS C:\> $var.Split("->")
test.1
test.2
PS C:\> $var -split "->"
test.1
test.2
注意split
採用正則表達式模式,而不是一個簡單的字符串。雖然對於這種特殊模式,這很好,但其他標點符號可能會出現問題,要求您在模式中使用特殊字符或使用SimpleMatch選項:
PS C:\> "a[b" -split "[",0,"SimpleMatch"
a
b