2017-04-12 29 views
0

文字列内の単語ofをPowerShellスクリプトに置き換えようとしています。文字列内の単語をpowershellに置き換えます。

if文私が試してみました:

$string = "a tale of two cities " 

$array = $string -split " "  

if($array -match 'of') { 
    $array -replace 'bob' 
} 

文がofを検出で動作しますが、私は別の言葉でそれを交換する方法がわかりません。 -replace演算子を使用して

+1

問題が発生しているコマンドについては、マニュアルといくつかのWebページを必ず確認してください。この問題については、[Get-Help about_Comparison_Operators'](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_comparison_operators)と[このScripting Guyのコラム](https://blogs.technet.microsoft.com/heyscriptingguy/2011/03/21/use-powershell-to-replace-text-in-strings/) –

答えて

1

単一の式では、あなたが必要とするすべてである:

> 'a tale of two cities' -replace '\bof\b', 'bob' 
a tale bob two cities 

あなたが空白で単語に結果の文字列分割をする場合:

$array = -split 'a tale of two cities' -replace '\bof\b', 'bob' 
+0

"of"のような世界を置き換えて配列に入れ、配列の単語リストをテストすることは可能でしょうか?同様に、$ array = $ array -replace $ wordList –

+0

@williamyocom:いいえ、 '-replace'はRHS上で単一の文字列しかサポートしません。 _new_質問をすることをお勧めします(あなたがそうしたら、ここで私に知らせてください)。 – mklement0

0

私はメソッドのバージョンは少し単純見つけます:

"a tale of two cities ".Replace('of','bob') 

または偶数:

$string = "a tale of two cities " 
$string.Replace('of','bob') 
+0

はい、この特定のケースでは、 '' string ''.NETクラスの' .Replace() '_method_がより単純ですが、PowerShellの_regex_ベースの' -replace' _operator_はより柔軟です。 – mklement0

関連する問題