Regexテスター
任意の文字列に対してJavaScript正規表現をテストし、マッチをリアルタイムでハイライト表示。グループ、フラグ、位置は下のリストに表示。
ブラウザのRegExpをそのまま使うので、ここで動くものはあなたのJavaScriptコードでも同じく動きます。
ハイライト
Highlighted matches will appear here.
マッチ
Match list with capture groups will appear here.
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 atlastIndex.
例
上のフィールドに貼り付けて動作を確認できるパターンの例:
\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フラグを使ってください。
パターンとテスト用テキストはどこかに送信されますか?
いいえ。正規表現は完全にブラウザ内で実行されます。何もアップロードされません。