正規表現テスター
Regex Tester
正規表現をサンプルの文章に当て、一致箇所をその場で光らせてキャプチャグループも並べます。
正規表現をサンプルのテキストに対して実行し、一致したものすべてを、その位置、キャプチャグループ、そして置換したときに出る結果とともに表示します。ブラウザ自身のエンジンなので、ここで起きることが、あなたのJavaScriptで起きることです。
パターン
文字列のどこでも一致可能、キャプチャグループ 2 個。
当てる相手
一致したものをすべて挙げます。`g` フラグがなければ `String.replace` は最初のひとつしか使いません。
0件一致
所要時間
0.0 ms
ask@example.com, 문의@example.co.kr and no-reply+tag@mail.example.org置換
`$1`、`$<name>`、`$&`、`` $` ``、`$'`、`$$` はすべて展開されます。`String.replace` が展開するのとまったく同じです。
使い方
パターンを書き、フラグを立てます
フラグのボタンは、効いてくる6つです。global、ignore case、multiline、dotAll、unicode、stickyです。上に出るリテラルが、そのままコードに貼り付けられるものです。
実際に手元にあるテキストを貼り付けます
一致した箇所はその場で強調され、隣り合ったものを見分けられるように色が交互になります。表には、グループごとの値とともに並びます。一致に関わらなかったグループも含めてです。
置換を試します
`$1`、`$<name>`、`$&`、`` $` ``、`$'`、`$$`は、すべて`String.replace`が展開するのとまったく同じように展開されます。だからプレビューが実際の出力です。
よくある質問
`g`フラグが無いという警告が出るのはなぜですか
一覧には一致したものがすべて出ますが、`g`が無ければコードのほうはそうなりません。`String.replace`は最初の1つしか変えませんし、`matchAll`ははっきり例外を投げます。ここで見えるものと、プログラムが実際にすることの差が、それです。
これはPythonやPCREと同じエンジンですか
違います。JavaScriptのものです。後読み、名前付きのグループ、`\p{…}`はここで使えますが、アトミックグループ、絶対最大量指定子、再帰、インラインのフラグ指定は使えませんし、文字クラスの振る舞いもところどころ違います。ここで動くパターンが、ほかの場所では失敗することがあります。
パターンを入れるとページが固まります
固まらないはずです。破滅的なバックトラックをするパターンは、ほかの方法では止められないので、まさにそのためにマッチングはワーカーで走ります。時間がかかりすぎれば実行を打ち切って報告します。それ自体が役に立つ合図でもあります。ここでそうなるパターンは、あなたのサーバーでもそうなります。
`.`が改行に一致しないのはなぜですか
そのために`s`(dotAll)があるからです。それが無ければ`.`は行の終端以外のすべてに一致します。そして`m`(multiline)はまた別のもので、変えるのは`^`と`$`の意味であって、`.`が何に一致するかではありません。
ここから渡せます
検索と置換
Find & Replace
文字列・単語単位・正規表現で置換し、キャプチャグループを使って、当たった箇所をすべて事前に確認できます。
パターン抽出
Pattern Extractor
文章の塊からメールアドレス・URL・数値・日付や自分で書いた正規表現に一致する箇所をすべて一覧にします。
正規表現の解説
Regex Explainer
正規表現を名前の付いた木に分解し、どの部分が何を捕まえるのかを読めるようにします。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
cron式の読み解き
Cron Parser
cron式を普通の言葉に開いて説明し、選んだタイムゾーンでの次の実行時刻を並べます。
検索と置換
Find & Replace
文字列・単語単位・正規表現で置換し、キャプチャグループを使って、当たった箇所をすべて事前に確認できます。
正規表現の解説
Regex Explainer
正規表現を名前の付いた木に分解し、どの部分が何を捕まえるのかを読めるようにします。
パターン抽出
Pattern Extractor
文章の塊からメールアドレス・URL・数値・日付や自分で書いた正規表現に一致する箇所をすべて一覧にします。
JSON⇄CSV変換
JSON ⇄ CSV
入れ子のJSONをドット記法の列名で平らに開くか、表からオブジェクトを組み直します。
JSON差分比較
JSON Diff
キーの順序を無視して2つのJSONを構造で比べ、追加・削除・変更されたパスを挙げます。