TegaruTools

正規表現テスター

JavaScriptの正規表現を試せます。マッチ結果やキャプチャグループを確認できます。

完全無料ブラウザ完結登録不要安全

設定

フラグ

マッチ結果

正規表現パターンを入力するとマッチ結果が表示されます。

このツールについて

  • 入力内容はブラウザ内のみで処理されます。サーバーには送信されません。
  • JavaScript の RegExp エンジンを使用しています。ブラウザ上の動作と同じ結果になります。
  • Python・PCRE など他言語の正規表現エンジンとは挙動が異なる場合があります。

関連ツール

使い方

  1. 1正規表現パターンを上段の入力欄に入力します(例:\d{3}-\d{4})。
  2. 2必要に応じて g・i・m などのフラグボタンをクリックして ON/OFF を切り替えます。
  3. 3テスト対象のテキストをテキストエリアに入力または貼り付けます。
  4. 4入力と同時に、マッチ結果エリアにマッチした文字列・位置・キャプチャグループが自動表示されます。
  5. 5エラーが表示された場合はパターンやフラグを修正して再確認します。

よくある利用シーン

  • メールアドレスや URL の抽出パターンを動作確認したいとき
  • ログやテキストファイルから特定形式の文字列を取り出したいとき
  • フォームバリデーション用の正規表現を試作・検証したいとき
  • JavaScript の RegExp の挙動をすぐに確認したいとき
  • キャプチャグループや名前付きグループの動作を確認したいとき

よくある質問

正規表現テスターは無料で使えますか?

はい、完全無料です。ユーザー登録やインストールも不要です。

入力したパターンやテキストはサーバーに送信されますか?

いいえ。すべての処理はブラウザ内で完結します。入力した正規表現やテキストが外部に送信されることはありません。

どの正規表現エンジンで動作しますか?

JavaScript の RegExp エンジン(ブラウザ標準)を使用しています。ブラウザ上で直接 RegExp を実行するため、実際の JavaScript コードと同じ結果になります。

JavaScript の正規表現と完全に同じですか?

はい。このツールはブラウザ上で直接 JavaScript の RegExp を実行しているため、実際の JavaScript コードと同じ挙動になります。

g / i / m フラグはそれぞれ何ですか?

g(global)はテキスト全体を検索して複数マッチを取得します。i(ignore case)は大文字・小文字を区別しません。m(multiline)は ^ や $ を各行の先頭・末尾に対して適用します。

マッチしない場合は何を確認すればいいですか?

まず g フラグが ON になっているか確認してください。次に、. * + ? など特殊文字をリテラルとして使う場合はバックスラッシュでエスケープ(\. など)が必要です。また i フラグで大文字・小文字の違いを無視できます。

キャプチャグループとは何ですか?

正規表現内の () で囲んだ部分がキャプチャグループです。例えば (\d+)-(\d+) というパターンでは、括弧内にマッチした部分が Group 1・Group 2 として取得できます。(?<name>\d+) のように書くと名前付きグループになります。

Python や PCRE の正規表現と同じですか?

いいえ。このツールは JavaScript の RegExp エンジンを使用しており、Python(re モジュール)や PCRE など他の実装とは一部挙動が異なります。後読み(lookbehind)の対応状況などはエンジンによって差があります。

スマートフォンでも使えますか?

はい、スマートフォンのブラウザからもご利用いただけます。アプリのインストールは不要です。

正規表現を実務で使いこなすためのガイド

正規表現は「文字列のパターン」を記号で表す小さな言語です。慣れると、抽出・置換・入力チェックが一撃で書けます。ここでは、実務でそのまま使える書き方のコツと、JavaScript の正規表現ならではの注意点をまとめます。パターンを本ツールに貼り付けながら読むと理解が早まります。

まず覚える最小限の記号

  • . … 任意の1文字 / \d … 数字 / \w … 英数字とアンダースコア / \s … 空白
  • * … 0回以上 / + … 1回以上 / ? … 0か1回 / {2,4} … 2〜4回
  • ^ … 行頭 / $ … 行末 / [abc] … いずれか / [^abc] … 以外 / a|b … または
  • ( ) … グループ化&キャプチャ / (?: ) … キャプチャしないグループ

この程度で日常のパターンの8割は書けます。たとえば郵便番号は \d{3}-\d{4}、時刻は \d{1,2}:\d{2} です。

そのまま使える実用パターン

  • 全角スペースを含む空白の連続 … [\s ]+
  • 半角英数字のみ(IDチェック)… ^[A-Za-z0-9]+$
  • 末尾の空白除去(置換で使う)… \s+$
  • ざっくりメール抽出 … [\w.+-]+@[\w-]+\.[\w.-]+

注意:メールや電話番号を「完全に」検証する正規表現は非常に複雑になります。実務では「ざっくり形式を弾く」程度にとどめ、厳密な検証は送信確認などの別手段に任せるのが現実的です。

貪欲マッチの落とし穴

*+ は既定で「できるだけ長く」マッチします(貪欲)。たとえば <.*><a><b> に当てると、<a> だけでなく <a><b> 全体にマッチしてしまいます。

「最短で止めたい」ときは ? を付けて <.*?> とします(控えめマッチ)。HTMLタグやクォートで囲まれた範囲を1つずつ取り出したいときの定番テクニックです。本ツールで g フラグを付けて、マッチ範囲がどう変わるか見比べてみてください。

JavaScript の正規表現ならではの注意

本ツールはブラウザの RegExp を直接実行するので、結果は JavaScript コードと完全に一致します。ただし他言語から移植するときは差に注意です。

  • フラグは g(全体検索)・i(大小無視)・m(複数行)が基本。マッチしないときは、まず g の付け忘れを疑う。
  • 後読み (?<=...) は新しめの環境でのみ動作。Python や PCRE のパターンがそのまま動くとは限らない。
  • . は既定で改行にマッチしない。改行も含めたいときは s フラグ(dotAll)を使う。

エスケープでハマらないために

. * + ? ( ) [ ] { } ^ $ | \\ / は特別な意味を持つ記号です。これらを「文字そのもの」として探したいときは、前に \ を付けます。たとえば「1.5」を探すなら 1\.51.5 のままだと「1」+「任意の1文字」+「5」になり、「125」などにも当たってしまいます。

基礎から手を動かして学びたい方は 正規表現入門 もどうぞ。段階を追ってパターンを組み立てられるようになります。