PowerShell: 文字列を区切り文字で分割する Split

PowerShellで文字列を特定の区切り文字で分割する場合、 Splitメソッドを使用します。 Splitメソッドは分割した結果を配列として返します。
例えば、文字列を改行・タブ・スペース(空白)・カンマ等を区切り文字として分割して、 配列に格納したい場合に使用します。

Splitメソッドは.NET Framework Stringクラスのメソッドで、 書式は次の通りです。

書式
文字列.Split(区切り文字 [, 配列要素数])

戻り値は文字列を区切り文字で分割した配列です。
第1引数に区切り文字を指定し、 第2引数では返される配列の要素数を指定できます。

次のサンプルコードでは、 文字列"a,b,c"をカンマ区切りで配列に分割し、 配列の内容を表示しています。 要素数3の配列に分割されているのがわかります。

$s = "a,b,c"

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

# 実行結果
a
b
c

次は第2引数の配列要素数を指定した場合です。 指定した数の配列に分割されているのが確認できます。

$s = "a,b,c"

$arr = $s.split(",", 2)
$arr

# 実行結果
a
b

改行コードで分割する場合

改行コードを区切り文字として分割する場合、 区切り文字に該当する改行コード "`n" 又は "`r`n" 又は "`r" を指定します。

$s = "a,b,c"

# `n の場合
$arr = $s.split("`n")

# `r`n の場合
$arr = $s.split("`r`n")

タブで分割する場合

タブを区切り文字として分割する場合、 区切り文字に "`t" を指定します。

$s = "a`tb`tc"
# タブ区切り
$arr = $s.split("`t")

-split演算子による分割

PowerShellの-split演算子でも文字列を分割できます。 -split演算子なら正規表現を使えるというメリットがあります。

次のサンプルコードでは、-split演算子と正規表現を使って 改行で分割しています。 区切り文字に正規表現を使って「"`r?`n」と記述することで "`r`n"・"`n"の両方に対応できます。

$s = "a`nb`nc"

$s -split "`r?`n"

# 実行結果
a
b
c

参考サイト
String.Split メソッド (System) | Microsoft Docs
分割について - PowerShell | Microsoft Docs

PowerShell