Powershell在多种条件下分割字符串

时间:2016-01-21 04:15:16

标签: powershell powershell-v3.0

我有一个csv文件,我从列中提取名字和姓氏,将它们分隔在各自的列中。

所以给出了字符串:

'John Doe - Generic- Random'

我会使用split(" ")来提取名字和姓氏

$string = 'John Doe - Generic- Random'
$firstName = $string.split(" ")[0]
$lastName = $string.split(" ")[1]

第一期

我发现一个问题,在姓氏之后,有时字符串没有空格。例如

$string = 'John Doe-Generic-Random'

我如何得到姓氏Doe而不知道其他名字。如何针对" ""-"

这两个条件应用拆分

第二期

某些字符串只有名字。例如......

$string = 'John - Generic - Random

如果是这种情况,如何将姓氏指定为$ null?

1 个答案:

答案 0 :(得分:1)

看起来这样有用......

$string = 'John Doe - Generic- Random'
$firstName = $string -split {$_ -eq " " -or $_ -eq "-"}
$firstName[0]

$lastName = $string -split {$_ -eq " " -or $_ -eq "-"}
$firstName[1]

如果没有姓氏,则在姓氏列中将为空白。

如果lastName-Info之间有姓氏但没有空格,则会排除-Info并将lastName添加到Last Name列。