我得到了一个项目清单:
X\Y Z
X\Y Z
X\Y Z
X Z
静态分隔符是 X\Y 或 X 和 Z 之间的空格。
动态分隔符是'\',它是“动态的”,就像第四个例子一样,它可能存在,也可能不存在。
我正在尝试提取每个项目并将其分配给一个单独的数组。任何帮助将不胜感激。
我得到了一个项目清单:
X\Y Z
X\Y Z
X\Y Z
X Z
静态分隔符是 X\Y 或 X 和 Z 之间的空格。
动态分隔符是'\',它是“动态的”,就像第四个例子一样,它可能存在,也可能不存在。
我正在尝试提取每个项目并将其分配给一个单独的数组。任何帮助将不胜感激。
像这样的东西应该工作:
$list = 'X\Y Z','X\Y Z','X\Y Z','X Z'
$list | Foreach {$_.Split("\ ", [System.StringSplitOptions]::RemoveEmptyEntries)}
更新:您也可以使用正则表达式:
36> $pattern = '(?<x>\w+)(\\(?<y>\w+))?\s+(?<z>\w+)'
37> 'X\Y Z' -match $pattern
True
38> $matches.x
X
39> $matches.y
Y
40> $matches.z
Z
41> 'X Z' -match $pattern
True
42> $matches.x
X
43> $matches.y
44> $matches.z
Z
其他方式:
$list = 'X\Y Z','X\Y Z','X\Y Z','X Z'
$list -split '\\| '