0

我得到了一个项目清单:

X\Y Z

X\Y Z

X\Y Z

X Z

静态分隔符是 X\Y 或 X 和 Z 之间的空格。

动态分隔符是'\',它是“动态的”,就像第四个例子一样,它可能存在,也可能不存在。

我正在尝试提取每个项目并将其分配给一个单独的数组。任何帮助将不胜感激。

4

2 回答 2

0

像这样的东西应该工作:

$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
于 2013-08-14T05:06:28.830 回答
0

其他方式:

$list = 'X\Y Z','X\Y Z','X\Y Z','X Z'
$list -split '\\| '
于 2013-08-14T08:09:24.563 回答