正規表現と文章を入れると、マッチした場所をその場で色分けします。キャプチャグループの中身、置換・分割の結果、パターンの日本語の解説まで1画面で確かめられます(JavaScript の正規表現で動きます)。
黄色と青が交互にマッチした部分です(隣り合うマッチを見分けるため)。オレンジの縦線は長さ0のマッチ(^ や \b などの位置だけのマッチ)。↵ は改行です。マッチをクリックすると一覧の行に移動します。
$& マッチ全体$1〜 グループ番号$<名前> 名前付きグループ$` マッチより前$' マッチより後$$ 「$」そのもの\n 改行(下のチェック)マッチした部分を区切りとして文章を分けます(JavaScript の split と同じ)。区切りにグループ ( ) があると、その中身も結果に入ります。
パターンを部品に分けて、それぞれの意味を日本語で説明します。字下げはグループ(かっこ)の入れ子の深さです。
Python 用は、名前付きグループの書き方((?<名前>…) → (?P<名前>…))などを自動で書き換えています。言語によって細かい動きが違うため、使う前に実際の環境でも確かめてください。
リンクには正規表現・フラグ・置換後の文字列が入ります(テストする文章は入りません)。リンクの「#」より後ろはサーバーに送られません。
.改行以外の任意の1文字\d数字(0〜9、半角のみ)\w半角英数字と _\s空白(全角スペース・改行を含む)\D \W \Sそれぞれの「以外」\b単語の境目(英数字の前後)[abc]a・b・c のどれか1文字[^abc]a・b・c 以外の1文字[a-z]a から z までの1文字^ $先頭・末尾(m で各行)*0回以上+1回以上?0回か1回{3}ちょうど3回{2,5}2〜5回*? +?できるだけ短く(最小一致)a|ba または b( )グループ(あとで $1 で使える)(?: )番号を付けないグループ(?<y> )名前付きグループ(?= )後ろに続く(先読み)(?! )後ろに続かない(?<= )前にある(後読み)\11番のグループと同じ文字列\p{Script=Han}漢字(u が必要)\.記号そのもの(\ で打ち消す)正規表現(せいきひょうげん)は、「3桁の数字、ハイフン、4桁の数字」のような文字の並びの決まりを短い記号で書き、文章の中から当てはまる部分を探したり置き換えたりする仕組みです。プログラミングだけでなく、テキストエディタの検索・置換、Excel や Google スプレッドシートの関数(REGEXMATCH など)、アクセス解析のフィルタ、メールの振り分けルールなどでも使われています。
便利な反面、書いたパターンが思ったとおりに動くかは、試してみないと分かりません。このツールでは、パターンと文章を入れるだけで、どこにマッチしたかを色で示し、カッコで囲んだ部分(キャプチャグループ)に何が入ったかを位置つきで一覧にします。置換したときの結果や、パターンの各部品の意味も同じ画面で確認できるので、「なぜマッチしないのか」を探す手間が減ります。入力した内容はブラウザの中だけで処理し、外部には送りません。
/ は入れません。迷ったら「よく使うパターン」のボタンから選ぶと、例文と一緒に入ります。g は「すべてのマッチを探す」です。$1 でグループの中身を差し込めます。ひらがなを [ぁ-ん] と書くことが多いですが、これには長音の「ー」が入りません(「ー」はカタカナの範囲の文字です)。「らーめん」をひとまとまりにしたいなら [ぁ-んー] とします。カタカナは [ァ-ヶー]、半角カタカナは [ヲ-゚] です。漢字は [一-龠] と書く例をよく見かけますが、「々」や一部の漢字がもれるため、u フラグを付けて \p{Script=Han} と書くほうが確実です。
JavaScript の \d は半角の 0〜9 だけです。一方、Python 3 の re では、文字列に対する \d が全角数字「123」などにもマッチします。言語によって結果が変わる代表例なので、全角数字も含めたいときは [0-90-9] のように明示すると、どの言語でも同じ動きになります。
* や + は、マッチできる範囲でできるだけ長く取ります(貪欲マッチ)。たとえば <.+> で HTML のタグを探すと、<b>太字</b> 全体が1つのマッチになります。後ろに ? を付けた <.+?> にすると、できるだけ短く取るので、タグが1つずつに分かれます。
(a+)+$ のように繰り返しを入れ子にすると、マッチしない文章で試せる組み合わせが爆発的に増え、処理が何秒も何分も終わらなくなることがあります(バックトラックの爆発、ReDoS とも呼ばれます)。このツールは検索を別の処理(Web Worker)で行い、2秒を超えたら打ち切って知らせるので、画面が固まりません。打ち切られたパターンは、本番のプログラムでも危険な可能性があります。
\d の範囲、後読みで使える書き方などに違いがあります。最終的には使う環境でも確かめてください。match や replace と同じ動きです。\n)にそろえられます。Windows の CRLF を前提にした \r\n はマッチしないことがあるので、\r?\n と書いておくと安全です。