正規表現テスター
正規表現パターンのマッチングをリアルタイムでテスト・デバッグできる無料オンラインツール。マッチ箇所のハイライト表示、名前付きキャプチャグループ抽出、g/i/m/s/u フラグの即時切替、JavaScript正規表現エンジンに対応。ブラウザ完結でパターンも対象文字列も外部送信なし。
正規表現パターンをリアルタイムでテストし、マッチ箇所をハイライト表示するツールです。キャプチャグループの内容、フラグの組み合わせ、複数マッチの確認まで一画面で行えます。
// 正規表現テスターの機能と特徴
正規表現の基本構文
正規表現は文字のパターンマッチングを行うための記法です。「.」は任意の1文字、「*」は0回以上の繰り返し、「+」は1回以上の繰り返し、「?」は0回または1回、「[]」は文字クラス、「()」はキャプチャグループを表します。「\d」は数字、「\w」は英数字とアンダースコア、「\s」は空白文字にマッチします。
よく使うパターン例
メールアドレスの検証「[\w.-]+@[\w.-]+\.\w+」、電話番号の抽出「\d{2,4}-\d{2,4}-\d{4}」、URLの検出「https?://[\w/:%#\$&\?~\.=\+\-]+」、HTMLタグの除去「<[^>]+>」など、実務で頻繁に使われるパターンがあります。本ツールでこれらのパターンの動作を確認できます。
フラグの詳細
g(global)は文字列全体から全てのマッチを検索します。i(ignoreCase)は大文字小文字を区別しません。m(multiline)は^と$が各行の先頭・末尾にマッチします。s(dotAll)は.が改行にもマッチします。u(unicode)はUnicode対応のマッチングを行い、日本語などの処理に有用です。
キャプチャグループの活用
`()` で括った部分はキャプチャグループとして、マッチした部分文字列を取り出せます。`(?<year>\d{4})-(?<month>\d{2})` のように `?<名前>` を付けると名前付きグループになり、置換時や抽出時に `$<year>` の形で参照できます。複数項目を1パターンから取り出したい場合に便利です。
// 正規表現テスターに関するよくある質問
- 正規表現テスターとは何ですか?
- 正規表現パターンを入力し、テスト文字列に対するマッチ結果(位置・長さ・キャプチャグループの中身)をリアルタイムで確認できるツールです。パターンの試行錯誤、メールやURLの検証ロジック開発、ログのパース、置換処理のデバッグなど、正規表現を扱う場面全般で役立ちます。
- どのフラグに対応していますか?
- g(グローバル・全マッチを取得)、i(大文字小文字を区別しない)、m(複数行モード)、s(dotAll・`.` が改行にマッチ)、u(Unicode・絵文字や日本語の正確な処理)の5つに対応しています。これらのフラグはJavaScriptの正規表現エンジンと完全互換です。
- キャプチャグループは確認できますか?
- はい、`()` で括った通常のキャプチャグループに加えて、`(?<name>...)` 形式の名前付きキャプチャグループの内容も表示します。マッチごとにグループの値が確認できるため、複数の項目を抽出する複雑な正規表現の動作確認に便利です。
- 正規表現はどのエンジンで実行されますか?
- ブラウザ標準のJavaScript正規表現エンジン(ECMAScript準拠)で実行されます。本番コードがNode.js・ブラウザJSの場合は同じ挙動になります。Python・Java・Perl・Go等の正規表現は微妙に方言が異なり、`(?P<name>...)` や `\K`、可変長lookbehind等は本ツールでは動かない場合があります。
- 正規表現のエスケープが必要な文字は何ですか?
- 正規表現で特別な意味を持つ `. * + ? ^ $ { } [ ] ( ) | \ /` の14文字をリテラルとしてマッチさせるにはバックスラッシュでエスケープが必要です。例えばピリオドは `\.`、丸括弧は `\(`・`\)` と書きます。文字クラス `[...]` の中では大半の特殊文字はリテラル扱いになります。
- greedy(貪欲)とlazy(非貪欲)の違いは?
- `.*` は貪欲で「できるだけ長く」マッチし、`.*?` は非貪欲で「できるだけ短く」マッチします。例えば `<.*>` を `<a><b>` にあてると貪欲版は全体(`<a><b>`)に、非貪欲版は最短の `<a>` にマッチします。HTMLタグや囲み記号の抽出では非貪欲版を使うのが定石です。
- 日本語や絵文字を正しくマッチさせたい
- `u` フラグを付けてください。`u` フラグ無しだと絵文字(サロゲートペア)が2文字扱いになる、`\p{...}` プロパティが使えない、などの問題があります。日本語ひらがなだけ抽出したい場合は `u` フラグ + `[\p{Script=Hiragana}]+` のようにUnicodeプロパティが使えて便利です。
- lookbehind(後方参照)は使えますか?
- はい、`(?<=...)`(肯定後読み)と `(?<!...)`(否定後読み)が使えます。例えば `(?<=¥)\d+` で「¥ の直後にある数字」だけを抽出できます。古いSafariや一部の旧ブラウザでは未対応のため、本番でユーザーのブラウザに依存させる場合は注意してください。
- マッチが0件のときの確認方法は?
- パターンと対象文字列が表示されているのにハイライトが付かない場合、(1) エスケープ忘れ(`.` が想定外に何でもマッチしている)、(2) 大文字小文字(`i` フラグの付け忘れ)、(3) 改行コードの違い(`m` / `s` フラグ)、を確認してください。本ツールでは「マッチ件数 0」と明示されるため、判別がつきやすいです。
- データはサーバーに送信されますか?
- いいえ、すべてブラウザ内のJavaScriptで処理し、入力したパターンも対象文字列もサーバーに送信しません。社内ログ・APIレスポンス・個人情報を含むテキストなど、機密性の高いデータでも安全に正規表現を試せます。
// 正規表現テスターの使い方
-
正規表現を入力
上部の入力欄に正規表現パターンを入力します。スラッシュ `/.../` は不要で、パターン本体だけを記述してください。`[\w.-]+@[\w.-]+` のように直接入力できます。
-
フラグを選択
必要なフラグ(g・i・m・s・u)をトグルで選択します。複数件マッチを確認するなら g、大文字小文字を無視するなら i、複数行の先頭末尾を扱うなら m を付けます。日本語・絵文字を含む対象なら u を付けるのがおすすめです。
-
テスト文字列を入力・マッチ確認
下部のテキストエリアにテスト対象の文字列を入力すると、マッチ箇所がハイライト表示され、キャプチャグループの中身も一覧表示されます。フラグやパターンを変えると即座に再評価されるので、トライ&エラーが快適に行えます。
カテゴリ コード