正規表現チェッカーの概要・基礎知識
正規表現(Regular Expression / Regex)は、文字列のパターンを記号で表現する小さな言語で、テキストの検索・置換・バリデーションに広く使われています。本ツールは、入力したパターンがテスト文字列にどのようにマッチするかをハイライト表示で即座に確認できる「JavaScript正規表現エンジン」のチェッカーです。マッチ数・各マッチの位置・キャプチャグループ・置換結果を一画面で確認でき、パターンを少しずつ調整しながらリアルタイムで結果を見るデバッグスタイルに最適化されています。プリセット(メール・電話・URL等)から始めれば、初学者もすぐに正規表現の動きを体験できます。
主要メタ文字と意味
| 記号 | 意味 | 例 |
| . | 任意の1文字 | a.c → abc, a1c |
| * | 0回以上の繰り返し | ab* → a, ab, abb |
| + | 1回以上の繰り返し | ab+ → ab, abb |
| ? | 0回または1回 | colou?r → color, colour |
| {n,m} | n〜m回 | \d{3,4} → 3〜4桁の数字 |
| [abc] | カッコ内のいずれか | [aeiou] → 母音 |
| \d \w \s | 数字 / 単語文字 / 空白 | \d+ → 1個以上の数字 |
| ^ $ | 行頭 / 行末 | ^abc → abcで始まる |
| (...) | キャプチャグループ | (\d+)-(\d+) |
使い方の流れ
- 「まず試してみよう」のプリセット(メール・電話・URL・IPアドレス・ひらがな抽出など)から1つ選ぶと、パターンとサンプル文字列が自動入力されます。
- テスト文字列を編集すると、マッチする部分が黄色くハイライトされ、画面上部にマッチ数がリアルタイム表示されます。
- 自分でパターンを書く場合は「正規表現パターン」欄に入力します。構文エラーがあれば赤いエラーメッセージで指摘されます。
- 「置換機能を使う」を展開し、置換文字列を入力すると、マッチ部分を別の文字列に置き換えた結果がプレビュー表示されます。
$1などで後方参照も可能です。
- 結果が確定したら「マッチ一覧をコピー」「置換結果をコピー」でクリップボードに転送し、エディタやコードへ貼り付けて活用します。
こんな場面で使う
- フォームバリデーション開発:メールアドレス・郵便番号・電話番号などの入力チェック用パターンを、本番投入前に実データで検証できます。
- ログ解析:アクセスログから特定のIPアドレスやエラーコードを抽出するパターンを、サンプル行で動かして確認できます。
- テキスト整形・置換:CSVファイルのカンマを置換したり、Markdownリンクを別形式に変換したりする際に、置換パターンをテストできます。
- スクレイピングのHTMLパース補助:取得した文字列から、価格や日付の塊を取り出すパターンを実データで練習できます。
- VSCode・sedの一括置換:エディタで実行する前に別環境(このツール)で安全に動作確認してから本番ファイルに適用できます。
使う前に知っておきたい注意点
- 本ツールはJavaScript(ECMAScript)の正規表現エンジンで動作します。Python・PHP・Java・grep等とは一部挙動が異なるため、別言語で使う場合は最終的にその言語でも検証してください。
- ルックビハインド
(?<=...) やUnicodeプロパティ \p{...} は新しめのブラウザでのみ動作します。古い環境を想定する場合は別の書き方を検討してください。
- 「貪欲(greedy)」と「非貪欲(lazy)」の違いに注意。
.*は最長一致、.*?は最短一致になります。
- HTMLやJSONのパースを正規表現だけで完結させるのは推奨されません。複雑な入れ子は専用パーサ(DOMParser等)の利用を検討してください。
- 巨大な文字列に非効率なパターン(catastrophic backtracking)を当てると、ブラウザがフリーズする可能性があります。
(a+)+のようなネストしたQuantifierは避けてください。
よく使う正規表現パターン
| 用途 | パターン |
| メールアドレス | [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} |
| URL | https?://[\w/:%#\$&\?\(\)~\.=\+\-]+ |
| 電話番号(日本) | 0[0-9]{1,4}[\-]?[0-9]{1,4}[\-]?[0-9]{3,4} |
| 郵便番号 | \d{3}[\-]?\d{4} |
| IPアドレス | \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b |
| 半角数字のみ | ^[0-9]+$ |
| 日本語(ひらがな) | [\u3040-\u309F]+ |
| 日本語(カタカナ) | [\u30A0-\u30FF]+ |
用語の補足
- キャプチャグループ:
()で囲った部分。マッチした文字列を後から参照できます。$1は1番目のグループの内容です。
- 非キャプチャグループ:
(?:...)で囲うとグループ化はするが番号付けしない構文です。パフォーマンス向上に役立ちます。
- フラグ:
gは全件検索、iは大文字小文字無視、mは複数行モード、sは.を改行にもマッチさせる修飾子です。
よくある質問
正規表現(Regular Expression)は、文字列のパターンを記号の組み合わせで表現する記法です。テキストの検索・置換・バリデーション(入力チェック)などに広く使われ、ほとんどのプログラミング言語やエディタが対応しています。テキスト処理の基本スキルの一つで、習得すると日々の作業効率が大きく向上します。
JavaScript(ECMAScript)の正規表現エンジンで動作します。Python(re)・PHP(PCRE)・Java・grepなどとは一部の構文や挙動(特にルックビハインドや改行扱い)が異なるため、別言語で使う際はその言語側でも最終確認することを推奨します。
パターン内の()で囲んだ「キャプチャグループ」の内容を、置換文字列の中で再利用するための後方参照です。$1は1番目、$2は2番目のグループに対応します。例えば(\d+)-(\d+)で数字を入れ替えるには、置換文字列に$2-$1と書きます。
本ツールはデフォルトでg(全件マッチ)を有効にしています。一般にiは大文字小文字を無視、mは複数行モード(^$を行ごとに)、sは.を改行にもマッチさせる修飾子です。コードに移植する際はこれらのフラグも合わせて指定してください。
まずシンプルな部分から段階的に組み立てるのが鉄則です。例えばメールアドレス全体を一気に書くより、ローカル部→@→ドメイン部→TLDと順に分けて確認してください。.がエスケープなしだと「任意の1文字」になる点、+と*の差、貪欲・非貪欲の違いなど、初心者がつまずきやすいポイントを意識すると解決が早まります。
UnicodeのUTF-16範囲指定が確実です。ひらがなは[-ゟ]、カタカナは[゠-ヿ]、CJK統合漢字は[一-鿿]が代表例です。新しいブラウザでは\p{Hiragana}のようなUnicodeプロパティ記法も使え、より読みやすく書けます。
いいえ、すべての処理はブラウザ上で完結します。入力されたパターンやテスト文字列が外部のサーバーに送信されることは一切ありません。実データを使った検証も安心して行えます。