Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】文字列を特定の文字または文字列で分割する

RegexクラスのSplitメソッドを使う。最初の例ではStringクラスのSplitメソッドを使用しているが、分割の基準となる文字を1つしか指定できないため、うまくいかない。そのため、その次の例のとおりに、正規表現のパターンを「[\s]+」(1つ以上の連続した空白(0x20))している。なお、あらかじめTrimメソッドで文字列の前後の空白は取り除いている。

PS > $s = " A B  C "
PS > $s.Trim().Split(" ")
A
B

C
PS > [regex]::Split($s.Trim(), "[\s]+")
A
B
C

規則性なく空白が含まれるCSVの文字列は、以下のような分割パターンを正規表現で与えれば、うまく分割することができる。

PS > $s = " A, B,C "
PS > $s.Trim().Split(",")
A
 B
C
PS > [regex]::Split($s.Trim(), "[\s,]+")
A
B
C