Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用多个分隔符powershell拆分字符串?_Arrays_String_Powershell_Split - Fatal编程技术网

Arrays 如何使用多个分隔符powershell拆分字符串?

Arrays 如何使用多个分隔符powershell拆分字符串?,arrays,string,powershell,split,Arrays,String,Powershell,Split,我想解决我的问题已经有一段时间了 我得到了一个存储为字符串的名称,如下所示 FirstName LastName d111 我想将FirstName LastName存储为变量 我试着使用代码$Name.Split(“d11”)[0],这一功能已经运行了一段时间,直到我意识到如果名称包含“d”,那么它的作用也像一个分隔符 有人能帮我解决这个问题吗 谢谢大家假设您总是有一个空格和按此顺序排列的字段,您应该使用空格作为分隔符: $Name.Split(" ")[-4..-2] -join " "

我想解决我的问题已经有一段时间了

我得到了一个存储为字符串的名称,如下所示

FirstName LastName d111
我想将FirstName LastName存储为变量

我试着使用代码
$Name.Split(“d11”)[0]
,这一功能已经运行了一段时间,直到我意识到如果名称包含“d”,那么它的作用也像一个分隔符

有人能帮我解决这个问题吗


谢谢大家

假设您总是有一个空格和按此顺序排列的字段,您应该使用空格作为分隔符:

$Name.Split(" ")[-4..-2] -join " "
此更新的方法将从预期的最后一项(-4)转到发送到最后一项(-2)

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

FirstName Middle Name LastName d111

如果您想处理更多字段,只需调整数字即可。e、 g.-10将处理多达9个名称,并省略最后一个字段(d111)

假设您始终有一个空格,并且字段按该顺序排列,则应使用空格作为分隔符:

$Name.Split(" ")[-4..-2] -join " "
此更新的方法将从预期的最后一项(-4)转到发送到最后一项(-2)

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

FirstName Middle Name LastName d111

如果您想处理更多字段,只需调整数字即可。e、 g-10将处理多达9个名称,并省略最后一个字段(d111)

谢谢您的帮助

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

如果有人需要我用的代码

        $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

谢谢你的帮助

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

如果有人需要我用的代码

        $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

你能分享一个你的条件不起作用的示例吗?你能分享一个你的条件不起作用的示例吗?这是个好主意,但有些用户有3个名字,如果没有其他帮助,我可以在if语句中使用它,但我希望有更好的解决方案。这是个好主意,但有些用户有3个名字,如果没有其他帮助,我可以在if语句中使用它,但我希望有更好的解决方案