解析自定义参数 “ - ” delimitted

问题描述:

我有一个字符串解析自定义参数 “ - ” delimitted

-car: “日产” - 模型: “迪娜” - 颜色: “淡蓝色” -wheels: “4”

我如何提取参数?最初的想法是使用' - '作为分隔符,但是这不起作用。

+0

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

使用正则表达式可能是最简单的任务解决方案。这可以在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