Regexテスター

任意の文字列に対してJavaScript正規表現をテストし、マッチをリアルタイムでハイライト表示。グループ、フラグ、位置は下のリストに表示。

ブラウザのRegExpをそのまま使うので、ここで動くものはあなたのJavaScriptコードでも同じく動きます。

ハイライト

Highlighted matches will appear here.

マッチ

Match list with capture groups will appear here.
Edit the pattern or test string, then press Test (Cmd/Ctrl+Enter).

JavaScriptフレーバー

このテスターはブラウザの組み込みRegExpを使います。ECMAScriptの正規表現構文をサポートし、PCRE (PHP、Perl) やPythonのre同じではありません。他のエンジンで知っている一部の構文は使えなかったり、挙動が異なる場合があります:

  • No possessive quantifiers (a*+, a++).
  • No atomic groups (?>...).
  • No conditional patterns (?(1)yes|no).
  • Lookbehind (?<=...) is supported in modern browsers but can fail in older engines.
  • Named groups use (?<name>...) (not (?P<name>...) like Python).

フラグリファレンス

  • g — return all matches, not just the first.
  • i — case-insensitive match.
  • m^ and $ match at line breaks, not only string edges.
  • s — dot . also matches newlines.
  • u — full Unicode mode; \p{...} property escapes enabled.
  • y — sticky: match must start exactly at lastIndex.

上のフィールドに貼り付けて動作を確認できるパターンの例:

\d{4}-\d{2}-\d{2}            # ISO-like dates
[\w.+-]+@[\w-]+\.[\w.-]+     # rough email
^https?:\/\/\S+              # URL at line start (needs m flag)
(?<year>\d{4})-(?<mo>\d{2})  # named groups

よくある質問

PHP/Pythonで動くパターンがここで失敗するのはなぜ?

このテスターはパターンをブラウザのRegExp (ECMAScriptフレーバー) で実行します。PCRE固有の機能 (possessive量指定子、アトミックグループ、条件パターン) はサポートされません。パターンをECMAScript互換の形に書き換えてください。

パターンで一瞬ページがフリーズしました。なぜですか?

JavaScriptの正規表現エンジンはシングルスレッドで、catastrophic backtracking (例えば(a+)+$のような入れ子の量指定子) を含むパターンで遅くなりえます。ツールはマッチリストを1000で上限を切って被害を抑えますが、マッチ自体はページ内で動作します。

複数行にまたがるマッチはどうすれば?

.を改行にもマッチさせたい場合はsフラグ、^/$を各行に固定したい場合はmフラグを使ってください。

パターンとテスト用テキストはどこかに送信されますか?

いいえ。正規表現は完全にブラウザ内で実行されます。何もアップロードされません。

関連ツール