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

问题描述 投票:0回答:2

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

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

FirstName LastName d111

我想将FirstName LastName存储为变量

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

谁能帮我解决这个问题?

感谢你们

arrays string powershell split
2个回答
2
投票

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

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

这种更新的方法将从预期的最后一项(-4)变为发送到最后一项(-2)。

-4将适用于你的例子,或类似的东西:

FirstName Middle Name LastName d111

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


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
© www.soinside.com 2019 - 2024. All rights reserved.