2012-02-15 16 views
3

私が達成しようとしているのは、最後のものを除いて、指定された文字列からすべての単語を選択することです。 私はいくつかの弦を持っています。最後の文字列(PowerShell)以外のすべての単語を選択してください

On The Rocks 
The Rocks 
Major Bananas 

すべての文字列の中から最後の文字列を除いてすべての単語を選択します。 スプリット()を使用してすべての単語を別々のものにすることができます。私はもうそれを理解することはできませんが。

ありがとうございます。

答えて

5

ここで私はこのようなことをします。

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

それは明示的にスペース、 '$分割に参加する方が良いでしょう - それは明らかにあなたの意図が何であるかを示すよう、-join"「'[0 ..($ Split.count 2)]。 (そうでなければ '$ Sample.Split()'を使わなかったのはなぜですか? – jpaugh

0
$string -replace '^(.+)\b.+$','$1' 
8
$string.SubString(0, $string.LastIndexOf(' ')) 
1

これは、末尾にスペースがあっても最後の単語を削除します。また、単語間に複数のスペースを保持し、最後の単語の前のスペースを削除します。

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

文字列が単一の単語である場合、最後の単語は削除されません。代わりに

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

あなたはこのようにそれを行うことができます。 selectコマンドレットを使用して配列からアイテムを削除する方法は次のとおりです。

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

..オペレータは素晴らしい作品が、パイプで作業する場合、あなたは(Select-Objectのエイリアス)selectコマンドレットを使用することができます。

関連する問題