PowerShellでの基本的な文字列操作を解説

PowerShellでの基本的な文字列操作を解説。

PowerShellのコマンド操作で文字列を操作したい場面は結構あります。そこでここでは、文字列の分割、文字列の切り出し、文字列の結合、文字列の置換をPowerShellコマンドで行う基本的な方法を解説します。

文字列の分割

PowerShellで文字列を分割するときは、-Split演算子または.Split()メソッドを使った方法が一般的です。

たとえば、半角スペースを区切り文字として文字列を分割したいとき、-Split演算子なら以下のようにコマンドを実行します。

PS> $str = "Windows Linux Android Mac"
PS> $words = $str -split " "
PS> $words[0]
Windows
PS> $words[1]
Linux

複数の区切り文字を指定したいときなどは、以下のように正規表現を使って指定することもできます。

PS> $str = "Windows,Linux;Android,Mac"
PS> $words = $str -split "[,;]"
PS> $words[1]
Linux
PS> $words[2]
Android

Split()メソッドなら、以下のようにコマンドを実行します。

PS> $str = "Windows Linux Android Mac"
PS> $words = $str.Split(" ")
PS> $words[0]
Windows
PS> $words[1]
Linux

文字列の切り出し

PowerShellで文字列を切り出すときは、Substringメソッドを使った方法が一般的で、表計算ソフトのエクセルにあるRight・Mid・Left関数の様に文字列を切り出すことができます。たとえば、以下のような文字列から一部を切り出してみます。

PS> $str = 'date=2026-07-10'

位置と文字数を指定して切り出す

文字列の先頭から3文字を切り出したいときは、以下のようにコマンドを実行します。

PS> $str.SubString(0, 3)
dat

文字列の5文字目から2文字切り出したいときは、以下のようにコマンドを実行します。

PS> $str.SubString(4, 2)
=2

文字列の6文字目から末尾までを取り出したいときは、以下のようにコマンドを実行します。

PS> $str.SubString(5)
2026-07-10

文字列の末尾(右側)から2文字切り出したいときは、以下のようにコマンドを実行します。

PS> $str.SubString($str.Length - 2)
10

特定の文字の前・後を切り出す

文字列の「=」より後を取り出したいときは、以下のようにコマンドを実行します。

PS> $str -split '=' | Select-Object -Last 1
2026-07-10

または、以下のようにコマンドを実行することでも同じ結果を得られます。

PS> $array = $str -split '='
PS> $array[1]
2026-07-10

文字列の「=」の前を取り出したいときは、以下のようにコマンドを実行します。

PS> $str -split '=' | Select-Object -First 1
date

または、以下のようにコマンドを実行することでも同じ結果を得られます。

PS> $array = $str -split '='
PS> $array[0]
date

文字列の結合

PowerShellで文字列を分割するときは、+演算子または-join演算子を使った方法が一般的です。

+演算子を使って文字列を結合する方法は、直感的にコマンドを実行できます。

PS> $str = "Windows" + "Linux" + "Android" + "Mac"
PS> $str
WindowsLinuxAndroidMac

-join 演算子を使って文字列を結合する方法は、配列や複数の文字列を、区切り文字(カンマやスペースなど)を挟んで結合したいときに便利です。

PS> $str = "Windows","Linux","Android","Mac"
PS> $str -join ":"
Windows:Linux:Android:Mac

文字列の置換

PowerShellで文字列を置換するときは、-replace演算子または.Replace()メソッドを使った方法が一般的です。

たとえば、-replace演算子を使って「Windows」という文字列を「うぃんどうず」に置換したいときは、以下のようにコマンドを実行します。

PS> $str = "Windows,Linux,Android,Mac"
PS> $str -replace "Windows","うぃんどうず"
うぃんどうず,Linux,Android,Mac

-replace演算子を複数使えば、複数の文字列を一括で置換することもできます。

PS> $str = "Windows,Linux,Android,Mac"
PS> $str -replace "Windows","うぃんどうず" -replace "Mac","まっく"
うぃんどうず,Linux;Android,まっく

.Replace()メソッドを使って「Windows」という文字列を「うぃんどうず」に置換したいときは、以下のようにコマンドを実行します。

PS> $str = "Windows,Linux,Android,Mac"
PS> $str.Replace("Windows","うぃんどうず")
うぃんどうず,Linux,Android,Mac