PowerShell: 正規表現による一致を確認 -match

PowerShellで正規表現によるパターン一致をチェックする場合、 -match演算子を使うと簡単に確認できます。 正規表現に一致する場合はTrue、一致しない場合はFalseが戻ります。

書式
検索対象文字列 -match パターン文字列

-matchは文字列演算子で、左側に検索対象文字列、 右側にパターン文字列を記述します。

次のサンプルコードではパターン文字列を"b.t"として、 文字列"cat bat hat dat but"に一致するかどうかを確認しています。

$s = "cat bat hat dat but"

$bln = $s -match "b.t"

$bln

$matches
実行結果
True

Name                           Value
----                           -----
0                              bat

上のサンプルコードは「bat」と「but」がマッチしています。 ですから変数$blnにはTrueが格納されます。

-matchによる一致確認を実行した後、 シェル変数の$matchesには マッチした文字列が格納されています。 ただし、最初にマッチした値しか格納されません。 今回のケースでは「bat」だけが格納されていて、 次に一致する「but」は格納されていません。 複数取得したい場合は-match演算子ではなく、 regexオブジェクトを使用します。

-matchと似ている演算子で-notmatchがあります。 -notmatch演算子は-match演算子と真逆の結果を返すので 用途に応じて使い分けてください。

PowerShell