PowerShellでログ解析やテキスト処理を行っていると、必ずと言っていいほど登場するのが「正規表現(Regular Expression)」です。
正規表現を使うことで、単純な文字列検索だけでなく、IPアドレスや日付、メールアドレスなど特定のパターンに一致する文字列を効率よく抽出できます。
本記事では、PowerShellの Select-String や -match 演算子で利用できる正規表現の中から、実務でよく使用するパターンを一覧形式でまとめました。調べ物をするたびに検索するのが面倒という方は、チートシートとして活用してください。
| 正規表現 | 意味 | 一致例 |
|---|---|---|
\d | 数字1文字 | 1、5、9 |
\d+ | 数字1文字以上 | 1、123、99999 |
\w | 英数字1文字 | A、1、a |
\w+ | 英数字1文字以上 | Server01、PowerShell |
. | 任意の1文字 | a、1、@ |
^ERROR | ERRORで始まる行 | ERROR Database Error |
Failed$ | Failedで終わる行 | Connection Failed |
ERROR\|WARNING | ERRORまたはWARNING | ERROR Disk Full |
\d{4} | 4桁の数字 | 2025、9999 |
\d{2} | 2桁の数字 | 08、31 |
\d+\.\d+\.\d+\.\d+ | IPアドレス形式 | 192.168.1.1 |
\d{4}/\d{2}/\d{2} | 日付形式 | 2026/08/03 |
\w+@\w+\.\w+ | メールアドレス形式 | test@example.com |
[0-9] | 数字 | 0~9 |
[A-Z] | 大文字英字 | A~Z |
[a-z] | 小文字英字 | a~z |
[A-Za-z] | 英字全体 | abc、XYZ |
よく使う Select-String で例文
IPアドレス検索
PS> Select-String -Path *.log -Pattern "\d+\.\d+\.\d+\.\d+"その他の行を表示する
日付検索
Select-String -Path *.log -Pattern "\d{4}/\d{2}/\d{2}"
ERROR検索
PS> Select-String -Path *.log -Pattern "ERROR"
ERRORまたはWARNING検索
PS> Select-String -Path *.log -Pattern "ERROR|WARNING"
コメント