パターンとテストテキストはブラウザを離れません。
正規表現テスターとは?
正規表現テスターは、サンプルテキストに対してパターンをリアルタイムに構築・検証できるツールで、「アプリのコードを書き換えて → 再デプロイして → ログを見て一致したか確認する」というはるかに遅い試行錯誤ループを置き換えます。正規表現はテキスト処理の共通言語であり、JavaScript の RegExp、Python の re、Java の Pattern、Go の regexp、ripgrep、grep、sed、awk、Vim の検索、ほぼすべてのエディタの検索&置換 — どの実行環境にもなんらかの方言があります。正規表現を少しでも間違えるコスト(必要なエスケープを忘れる、g フラグを付け忘れる、欲張り量指定子を遅延量指定子にすべきところで使う)は、それが通してしまうバグそのもの:壊れたログパーサ、過敏なバリデータ、データ損失級の置換まで。 DevFormatLab の正規表現テスターは、キー入力ごとにブラウザ標準の JavaScript RegExp エンジンでテストテキストに対して評価するため、フロントエンドコードと完全に同じ結果が得られます。すべてのマッチがテストテキスト中にハイライトされ、各キャプチャグループ(名前付きグループ (?<name>...) を含む)が横並びに表示され、標準フラグ g・i・m・s・u・y もすべてサポート。組み込みのプリセットライブラリ(メールアドレス、URL、日本の郵便番号、ISO 8601 日付、IPv4、16 進カラー)が最頻出パターンの土台を即座に用意するので、ゼロから書くよりずっと現実的な出発点で反復できます。互換性メモは JavaScript / Java / Python の差異(可変長 lookbehind、Unicode プロパティエスケープ \p{Nd} や \p{Script=Hiragana}、名前付きグループの構文など)を指摘してくれるため、ローカルでは動くのにサーバランタイムで壊れるパターンを出荷せずに済みます。アップロードは一切なし — 正規表現もテストテキストもブラウザを離れないので、ログ行、顧客メール、機微 ID にも安心して使えます。
機能
- 入力と同時にリアルタイムでマッチをハイライト(Run ボタン不要)
- マッチごとのキャプチャグループ表示、名前付きグループ (?<name>...) にも対応
- 標準フラグ全対応:g(global)・i(ignore case)・m(multiline)・s(dotAll)・u(Unicode)・y(sticky)
- プリセット:メール、URL、日本の郵便番号、ISO 8601 日付、IPv4、16 進カラー
- JavaScript / Java / Python の差異を示す互換性メモ
- マッチ件数と各ヒットの 1 始まりインデックス
- ブラウザ内のみ — パターンとテストテキストはデバイスを離れません
使い方
- 正規表現の入力欄にパターンを入力します(前後のスラッシュは不要 — /users\.\w+/ ではなく users\.\w+ と入力)。
- 必要に応じて flags 欄でフラグを追加:g で全マッチ(最初の 1 件ではなく)、i で大小文字無視、m で ^ と $ が各行にマッチ、s で . が改行にもマッチ、u で完全 Unicode。
- 右側のパネルにテスト文字列を貼り付けます — プリセット(Email、URL、日本の郵便番号など)をクリックすれば、動作するパターンとサンプルを同時に読み込めます。
- マッチはテストテキスト中にライブハイライトされ、右の Matches パネルが各ヒットを 1 始まりインデックスと全キャプチャグループ(名前付き含む)とともに一覧表示します。
- パターンが「Invalid regular expression」になった場合、ツールチップが原因を説明します(nothing to repeat、unterminated group、invalid escape など)— ページを離れずに修正できます。
- 出荷前に互換性メモを確認:JavaScript で動くパターンが Java や Python では異なる挙動になることがあります — 例:可変長 lookbehind、Unicode プロパティエスケープ。
よくある質問
なぜ最初の 1 件しかマッチしないのですか?
▾
g(グローバル)フラグが付いていません。これがないと RegExp.exec / String.match は最初のヒットしか返しません。 // 誤り — "cat" を 1 度しか見つけない /cat/.test("cat cat cat") // 正しい — 全マッチを取得 "cat cat cat".match(/cat/g) // ["cat","cat","cat"] 本ツールではパターン横の flags 欄に g を入力してください。右側 Matches パネルが 1 始まりのインデックスで全件を表示します。
「Invalid regular expression: nothing to repeat」が出る
▾
量指定子(* + ? {n})には対象が必要です。多くはグループ先頭の未エスケープなメタ文字が原因: /+1234/ ← + の前に対象がない /(?:)+/ ← 空グループの繰り返し /5{1,3+}/ ← 量指定子内の不要な + リテラルをエスケープ:/\+1234/ なら "+1234" にマッチします。電話番号風には /\+?\d{10,15}/ が便利。
複数行にまたがるマッチを行いたい
▾
用途によりフラグが異なります: • m(multiline):^ と $ が各行の先頭/末尾にマッチ。/^ERROR/m など行単位の判定に。 • s(dotAll):. が \n にもマッチ。1 つのパターンが改行をまたぐとき、例:/<pre>(.*?)<\/pre>/s。 本ツールでは自由に組み合わせ可能。ログ解析では gms をよく使います。
\d が全角数字にマッチしないのはなぜ?
▾
既定の \d は ASCII の 0-9 のみで、0-9 は含みません。u(Unicode)フラグと Unicode プロパティエスケープを使ってください: /[\d\p{Nd}]/gu // 12 も 12 もマッチ 本ツールは u をサポート。Java は (?U)、Python は標準 re ではなく regex パッケージが必要です — 互換性パネルに差異を表示します。
Safari / 旧 Node で lookbehind が動かない
▾
可変長 lookbehind (?<=...) は V8 / SpiderMonkey では古くから動きますが、Safari < 16.4 と Node 8.x は未対応です。旧ランタイム対応が必要なら: • lookbehind を捕獲グループに置き換え:/(?<=USD )\d+/ → /USD (\d+)/ にして match[1] を読む。 • あるいは new RegExp を try/catch で囲み、失敗時は手動スキャンに切替。 本ツールは現在のブラウザでコンパイルするため、ここで失敗すれば本番でも失敗します — リリース前に捕獲グループ形に書き換えてください。
パターンとテストテキストはサーバーに送信されますか?
▾
いいえ。パターンは new RegExp(...) でコンパイルされ、テストテキストへの実行も完全にブラウザ内で完結します。DevTools のネットワークタブを開いて Run を押しても、新規リクエストは 0 件です。既定では localStorage にも保存しません。
関連ツール
JSON の整形・圧縮・検証・美化。エラー位置をハイライト。
2 つの JSON を左右で比較。行単位の赤緑ハイライト、キーソートで順序差を無視。
重複・空行の削除、空白トリム、UTF-8/Shift-JIS 変換、文字化け検出。
YAML、JSON、Java .properties の相互変換と検証に対応。
テキストやファイルを Base64 / Base64URL でエンコード・デコード。リアルタイム、ブラウザ内処理。
URL、クエリ文字列、URI コンポーネントをエンコード/デコードします。%20 と + の空白処理に対応。
テキストまたはファイルの MD5、SHA-1、SHA-256、SHA-384、SHA-512 ハッシュをブラウザー内で生成します。
Unix タイムスタンプ(秒 / ミリ秒)と人間が読める日付をタイムゾーン横断で相互変換。
JWT (JSON Web Token) をデコードし、ヘッダー / ペイロード / 署名を確認。時刻クレームは読みやすい日付と有効期限ステータスで表示。
JSON をソースコードに埋め込める文字列リテラルに変換します(ダブルクォートとバックスラッシュをエスケープ)。
Canonical: https://devformatlab.com/ja/regex-tester