トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

正規表現.ps1

[Windows PowerShell]

基本

-cmatch演算子と特殊変数$Matches。
-cmatchは演算子であり、ブール値を返す。

<文字列> -cmatch <正規表現文字列>

-cmatch演算子は、マッチしたかしなかったかをTrue / Falseで返す。

後方参照は$Matches特殊変数で参照可能。キーが数値、値がマッチした文字列というハッシュテーブル。
キー0にはマッチ部分全体が入っている。以降、1個目、2個目と後方参照文字列が入っている。

正規表現にマッチしないことを検出する演算子として、-cnotmatch がある。

落とし穴
-match、-notmatch 演算子を使うと大文字と小文字を区別しないので注意!!最初はこの仕様腐していたが、意外にも、大文字小文字の区別をしないでちょろっと正規表現マッチを使いたい場合には確かに便利。

$Matches

$Matchesには、直前の正規表現マッチでTrueだった場合の結果が入っている。Falseのときに、$Matchesが自動的にクリアされるわけではないので注意。

$Matchesのクリアは下記のように明示的に行う。

> $Matches.Clear()

PowerShellのハッシュは存在しない値を参照しても、エラーにはならない。$nullが返るだけなので注意。
$Matchesが空の場合は$Matches.Countが0を返すのでそれとわかる。