所以我想要实现的是从给定字符串中选择所有单词,除了最后一个单词。 所以我有几个字符串;
On The Rocks
The Rocks
Major Bananas
我想选择所有单词,除了每个单词的最后一个单词。 我想我可以使用split()将每个单词分开。虽然我无法进一步弄明白。
提前致谢。
答案 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>