PowerShell Split 文字列を分割して配列にする

PowerShellのsplitメソッドで、文字列を分割して配列にするサンプルです。

目次

サンプル Splitとは(文字列を分割して配列にする)
  カンマで区切る / 半角スペースで区切る
  タブで区切る / 正規表現で区切り文字をORで指定
  末尾が区切り文字の時、最後は要素になる?

Splitとは(文字列を分割して配列にする)

変数 = 文字列.split("区切り文字")
変数 = 文字列 -split "区切り文字"
  • 引数で文字列を区切り配列を返します。
  • 正規表現も使用できます。

カンマで区切る

$str = "a,b,c"

$arr = $str.split(",")

foreach ($a in $arr) {
  Write-Host $a  # a b c
}
Write-Host ("1=" + $arr[0])  # a
Write-Host ("2=" + $arr[1])  # b
Write-Host ("3=" + $arr[2])  # c

文字列をカンマで区切って配列にしています。

半角スペースで区切る

$str = "a b c"

$arr = $str.split(" ")

Write-Host ("1=" + $arr[0])  # a
Write-Host ("2=" + $arr[1])  # b
Write-Host ("3=" + $arr[2])  # c

文字列を半角スペースで区切って配列にしています。

タブで区切る

$str = Get-Content "d:\test3\test1.txt" # a b c(タブ区切り)

$arr = $str.split("`t")

Write-Host ("1=" + $arr[0])  # a
Write-Host ("2=" + $arr[1])  # b
Write-Host ("3=" + $arr[2])  # c

タブは`tで表します。

正規表現で区切り文字をORで指定

正規表現で区切り文字をコロン(:)とカンマ(,)にします。

$str = "1:a,2:b,3:c"

$arr = $str -split "[,:]"

Write-Host ("1=" + $arr[0])  # 1
Write-Host ("2=" + $arr[1])  # a
Write-Host ("3=" + $arr[2])  # 2
Write-Host ("4=" + $arr[3])  # b
Write-Host ("5=" + $arr[4])  # 3
Write-Host ("6=" + $arr[5])  # c

[,:]は、カンマ(,)またはコロン(:)という正規表現です。

末尾が区切り文字の時、最後は要素になる?

$str = "a,b,c,"

$arr = $str.split(",")

Write-Host ($arr.Length)  # 4

1行目は、末尾が区切り文字のカンマで終わっています。
この場合、区切り文字の後は空文字の要素になります。

関連の記事

PowerShell if文のサンプル

△上に戻る