2010-12-08 96 views
0

我有一個字符串解析自定義參數 「 - 」 delimitted

-car: 「日產」 - 模型: 「迪娜」 - 顏色: 「淡藍色」 -wheels: 「4」

我如何提取參數?最初的想法是使用' - '作爲分隔符,但是這不起作用。

+0

它是如何與PowerShell的? – stej 2010-12-08 06:00:01

回答

1

使用正則表達式可能是最簡單的任務解決方案。這可以在PowerShell中進行:

$text = @' 
-car:"Nissan" -Model:"Dina" -Color:"Light-blue" -wheels:"4" -windowSize.Front:"24" 
'@ 

# assume parameter values do not contain ", otherwise this pattern should be changed 
$pattern = '-([\.\w]+):"([^"]+)"' 

foreach($match in [System.Text.RegularExpressions.Regex]::Matches($text, $pattern)) { 
$param = $match.Groups[1].Value 
$value = $match.Groups[2].Value 
"$param is $value" 
} 

輸出:

car is Nissan 
Model is Dina 
Color is Light-blue 
wheels is 4 
windowSize.Front is 24 
+0

謝謝你的工作。如果參數如下所示:-car:「Nissan」-Model:「Dina」-Color:「Light-blue」-wheels:「4」-windowSize.Front:「24」 - windowSize.Back:「26」 如何改變正則表達式來迎合這些 – Henno 2010-12-09 00:28:28