如何拆分具有多个分隔符powershell的字符串?

时间:2018-02-28 10:48:59

标签: arrays string powershell split

我一直试图解决我的问题,

我有一个名字存储为字符串,看起来像这样。

FirstName LastName d111

我想将FirstName LastName存储为变量

我尝试使用代码$Name.Split("d11")[0],该代码工作了一段时间,直到我意识到该名称是否包含" d"它也像分隔符一样。

有人可以帮我解决这个问题吗?

谢谢你们

2 个答案:

答案 0 :(得分:2)

假设你总是有一个空格和那个顺序的字段,你应该使用空格作为分隔符:

$Name.Split(" ")[-4..-2] -join " "

此更新方法将从预期的最后一项(-4)转到发送到最后一项(-2)。

-4适用于您的示例,或类似的内容:

FirstName Middle Name LastName d111

如果您希望能够处理更多字段,只需调整数字即可。例如-10最多可处理9个名称,并省略最后一个字段(d111)

答案 1 :(得分:0)

感谢您的帮助!

最后,我选择了一个比你提到的更难的解决方案,我可能会稍后编辑我的代码。

如果有人需要,我使用的代码

        $user1 = $user.name.Split(" ")[0] #firstName
        $user1 = $user1 + " "
        $user2 = $user.name.Split(" ")[1] #secondName
        $user3 = $user.Name.Split(" ")[2] #thirdName

        if ($user3 -like "d111*")  
        { $user3 = $null
          $user = $user1 + $user2} 
        else 
        { $user2 = $user2 + " "
          $user = $user1 + $user2 + $user3}

$user1 =  $null
$user2 = $null
$user3 = $null