从最后一个字符串中选择所有单词(PowerShell)

时间:2012-02-15 18:00:25

标签: arrays powershell split

所以我想要实现的是从给定字符串中选择所有单词,除了最后一个单词。 所以我有几个字符串;

On The Rocks
The Rocks
Major Bananas

我想选择所有单词,除了每个单词的最后一个单词。 我想我可以使用split()将每个单词分开。虽然我无法进一步弄明白。

提前致谢。

6 个答案:

答案 0 :(得分:8)

$string.SubString(0, $string.LastIndexOf(' '))

答案 1 :(得分:5)

以下是我可能会做这样的事情。

$Sample = "String sample we can use"
$Split = $Sample.Split(" ")
[string]$split[0..($Split.count-2)]

答案 2 :(得分:2)

你可以这样做:

$test -replace "\S*\s*$"

答案 3 :(得分:1)

即使有尾随空格,也会删除最后一个单词。它还保留了单词之间的多个空格,并删除了最后一个单词之前的空格。

'this   is   a    test ' -replace '^(.+\b)\s+\S+\s*','$1'

如果字符串是单个单词,则不会删除最后一个单词。

答案 4 :(得分:0)

$string -replace '^(.+)\b.+$','$1'

答案 5 :(得分:0)

..运算符效果很好,但在使用管道时,您可以使用select cmdlet(Select-Object的别名)。 以下是使用select cmdlet从数组中删除项目的方法。

PS> "On The Rocks", "The Rocks", "Major Bananas" |
foreach { write-host $($_ -split ' ' | select -skiplast 1) }
On The
The
Major
PS>