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