オンライン正規表現テスター
正規表現は強力ですが、間違えやすくデバッグが難しいものです。このregex テスターは書きながら確認できます:パターンとテスト文字列を入力すると、すべてのマッチがリアルタイムでハイライトされ、キャプチャグループが一覧表示されます。試行錯誤を目に見える形に変えます。
使い方
- パターン欄に正規表現を入力します(区切りの / は不要)。
- 必要なフラグ(g・i・m…)にチェックします。
- テスト文字列欄に内容を貼り付けると、マッチがリアルタイムでハイライトされ、下にグループが表示されます。
主な用途
- メール・電話・URL などの形式パターンを検証。
- マッチしなさすぎ/しすぎる正規表現をデバッグ。
- 正規表現の構文を学習・実験。
サンプルで実際に試す。貪欲マッチの取りすぎに注意
正規表現をコードに組み込む前に、ここに実際のサンプルテキストを貼り付けてリアルタイムに試し、思ったとおりにマッチするか確かめておくと、後のデバッグ時間を大きく減らせます。よくある落とし穴をいくつか。境界ケースを必ず試すこと。空文字列、先頭や末尾でのマッチ、特殊文字を含む入力——こうした例外こそがパターンを破綻させがちです。また ドット(.)はデフォルトで改行にマッチしません。複数行を扱うには dotall フラグを立てるか別の書き方が必要です。. * + ? ( ) などは特別な意味を持つので、文字そのものを探すにはバックスラッシュでエスケープします。そして一番はまりやすいのが 貪欲と非貪欲。.* はできるだけ右まで飲み込んで取りすぎることが多く、.*? にすると最短の一致で止まります。
件数だけでなくオフセットを見る理由
オフセットがマッチ数を診断に変えるからです。Order 12, item 345, qty 7. に対する \d+ は 3 件マッチ で、内容は #1"12"@6 #2"345"@15 #3"7"@24 —— 3 番目は 24 から始まり、最後の 7 が句点の前で見つかったこと、つまり句点が \d に含まれないことが分かります。貪欲と非貪欲も 1 回の計測で済みます。<b>bold</b> and <i>it</i> に対して <.+> は 1 件マッチ(文字列全体を飲み込む)、<.+?> は 4 件マッチ:#1"<b>"@0 #2"</b>"@7 #3"<i>"@16 #4"</i>"@21。同じ文字、同じ入力で、違いは疑問符 1 つです。