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演算子と真逆の結果を返すので 用途に応じて使い分けてください。