2016-01-21 17 views
0

У меня есть файл csv, в котором я извлекаю первое и последнее имя из столбца, чтобы разделить их в своих собственных столбцах.Powershell split string on multiple conditions

Так дали строку:

'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, если это так?

ответ

0

Похоже, это работает ...

$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 в столбцу Фамилия.