String 多重分裂

String 多重分裂,string,powershell,split,String,Powershell,Split,我需要一个更好的方法有什么想法吗 $strOutput = "800x600, 32 bits @ 60 Hz." # Initial split $aSplitString = $strOutput.Split(",") # Get Horizontal and Vertical Length $aSplitString2 = $aSplitString[0].Split("x") $strHorizontal = $aSplitString2[0] $strVertical

我需要一个更好的方法有什么想法吗

$strOutput = "800x600, 32 bits @ 60 Hz."

      # Initial split
$aSplitString = $strOutput.Split(",")


# Get Horizontal and Vertical Length
$aSplitString2 = $aSplitString[0].Split("x")
$strHorizontal = $aSplitString2[0]
$strVertical = $aSplitString2[1]
$aSplitString2 = $null

#Get Color Depth and Frequency
$aSplitString2 = $aSplitString[1].Split(" ")
$strColour = $aSplitString2[1]
$strFrequency = $aSplitString2[4]
不喜欢在一个字符串上使用这么多拆分函数。我还能做什么

在上面的例子中,我试图将单个分辨率大小、颜色深度和频率输入到它们的on变量中

水平=800 垂直=600 颜色=32
frequency=60

我发现我们可以将一个字符数组传递给split函数。
因此,在一行中:

PS C:\Windows\system32> "800x600, 32 bits @ 60 Hz.".split(@("x",","," "))
800
600

32
bits
@
60
Hz.
一种方法是:

$strOutput = "800x600, 32 bits @ 60 Hz."
$splitted = $strOutput -replace '\D',' ' -split '\s+'
$strHorizontal = $splitted[0] 
$strVertical = $Splitted[1]
$strColour = $splitted[2]
$strFrequency = $splitted[3]