[登録されているタグ]

[記事公開日]2025/12/20

PowerShellでマッチする文字列を判定する|-match の使い方

📝 はじめに

PowerShellで文字列を扱っていると、
「特定の文字が含まれているか判定したい」
「条件に合う行だけを抽出したい」
と感じる場面はよくあります。

そんなときに使われるのが
-match 演算子です。
この記事では、PowerShellで正規表現を使って文字列が一致するかを判定する基本を、
初心者にも分かりやすく解説します。

こんな場面で便利

  • ログから特定のキーワードを含む行を探したい
  • 文字列が条件に合うかを判定したい
  • Where-Object と組み合わせて抽出したい

✅ このコマンドでできること(要点)

  • 文字列が条件に一致するかを判定できる
  • 正規表現を使った柔軟な検索ができる
  • true / false の判定結果を得られる
  • Where-Object などと組み合わせて使える

✅ -match でできること

-match は、
左側の文字列が、右側で指定したパターンに
一致するかどうかを判定する演算子です。

単純な部分一致だけでなく、
正規表現を使った高度な条件判定ができるのが特徴です。

🧩 基本構文

"文字列" -match "パターン"

一致した場合は True
一致しない場合は False が返ります。

▶ 基本的な使い方(まずこれだけ)

🔹 特定の文字が含まれているか判定する

"PowerShell" -match "Shell"

True が返れば、
指定した文字列が含まれていることを意味します。

🔹 一致しない場合を確認する

"PowerShell" -match "Python"

この場合は False が返ります。

🛠 よく使われる指定例

🔹 大文字・小文字を区別せず判定する

"ERROR" -match "error"

-match
デフォルトで大文字・小文字を区別しません。

🔹 正規表現を使って数字を判定する

"file123.txt" -match "\d+"

数字が含まれていれば True になります。

💼 実務でよく使う使用例(応用)

🔹 ログからエラー行を抽出する

Get-Content log.txt | Where-Object { $_ -match "error" }

error を含む行だけが抽出されます。

🔹 ファイル名で条件判定する

Get-ChildItem | Where-Object { $_.Name -match "^test" }

test で始まるファイル名だけを取得できます。

組み合わせ例

🧩 よくある勘違い・つまずきポイント

  • 完全一致ではなく「部分一致」である
  • 正規表現の記号の意味を誤解しやすい
  • 戻り値は True / False である
  • 大小文字を区別したい場合は別指定が必要
  • 文字列以外では意図しない結果になることがある

🔄 cmdとの違いについて

cmd では文字列判定に
findfindstr を使いますが、
条件分岐と組み合わせるのは少し手間がかかります。
PowerShell の -match は、
判定結果をそのまま条件式として使える点が大きな違いです。

⚠ エラー・うまく動かないときの確認ポイント

  • 正規表現の記号が正しいか
  • ダブルクォート・シングルクォートの違い
  • 判定対象が文字列になっているか
  • 意図せず部分一致になっていないか

🧠 注意点

-match は非常に強力ですが、
正規表現を複雑にしすぎると可読性が下がります。
実務では「分かりやすさ」を意識して使うのがおすすめです。

📌 まとめ

  • -match は文字列が条件に一致するかを判定する演算子
  • 正規表現による柔軟な検索が可能
  • Where-Object と組み合わせると実務で強力
  • 次は -like や -notmatch と比較すると理解が深まる

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探せます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • 文字列が一致するか判定したい
  • 正規表現で検索したい
Generic filters
すべてを開く | すべてを閉じる

ページ上部へ戻る