2016-01-20 83 views
0

我试图找出与PowerShell的正则表达式,似乎无法得到我想要的。如何从字符串中提取名字和姓氏

鉴于串...

John Doe - Specialist - Data - Person 

我想从这个字符串中提取第一和列表名称,并将其添加到一个数组。我想下面...

$firstName = @() 
$lastName = @() 
$string = 'John Doe - Specialist - Data - Person' 

$firstName += $string -replace '\s+*','' #does not work 
$lastName += $string -replace '\*\s+\*','\*' #does not work 

更新

到目前为止,这个工程......

$firstName, $lastName = $string -split "\s" 
$lastName, $junk = $lastName -split "\s" 
$firstNames += $firstName 
$lastNames += $lastName 

但它是凌乱的,我想知道是否有更好的办法来处理这个问题。

回答

1

试试这个:

$string = 'John Doe - Specialist - Data - Person' 
$firstName = $string.split(" ")[0] 
$lastName = $string.split(" ")[1] 
$firstName 
$lastName 

这将输出

John 
Doe 

它分割空间,并根据您的代码选择第一个和最后一个名字

编辑:

$string = 'John Doe - Specialist - Data - Person' 
$firstNames += $string.split(" ")[0] 
$lastNames += $string.split(" ")[1] 
+0

谢谢!我实际上已将它改为'$ string.split(“\ s +”)[0]',以防万一用户意外输入超过1个空格。 –

+0

就像一个问题,我从csv文件中获取这个字符串。所以当我尝试'$ _StringName.split(“”)[0]'时,它不起作用。任何想法为什么? –

+0

没有测试过它,但我认为你需要'$ _。StringName.split(“”)[0]' –

相关问题