【发布时间】:2010-12-08 05:51:52
【问题描述】:
我有一个字符串
-汽车:“Nissan” -型号:“Dina” -颜色:“浅蓝色” -车轮:“4”
如何提取参数?最初的想法是使用“-”作为分隔符,但是这行不通。
【问题讨论】:
-
它和PowerShell有什么关系?
标签: regex parsing powershell arguments
我有一个字符串
-汽车:“Nissan” -型号:“Dina” -颜色:“浅蓝色” -车轮:“4”
如何提取参数?最初的想法是使用“-”作为分隔符,但是这行不通。
【问题讨论】:
标签: regex parsing powershell arguments
使用正则表达式可能是该任务最简单的解决方案。这可以在 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
【讨论】: