2016-01-20 184 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]' –