正規表現テスター

正規表現のマッチ結果をテスト

Flags ?
テストテキスト
一致結果
一致結果はありません

ツール説明

正規表現テスターについて

Regex Tester は JavaScript の正規表現をテキストに対して実行し、マッチ、キャプチャグループ、マッチ位置をその場で表示します。

メール、URL、ログ行、抽出、フォーム検証のパターンのデバッグに使え、処理はブラウザー内で行われます。

Regex Tester の使い方

  1. 外側の / / を付けずに正規表現を入力します。
  2. 必要に応じて g、i、m、s、u、y flags を有効にします。
  3. テスト用のテキストを貼り付け、各マッチ、キャプチャグループ、位置を確認します。

よくある利用場面

  • フォーム検証の正規表現が正しい入力を拒否しないか確認する。
  • ログやテキストから ID、URL、エラーコードを抽出する。
  • 貪欲な量指定子と遅延量指定子でマッチの長さを比較する。

フラグ、キャプチャグループ、よくある落とし穴

JavaScript の正規表現はフラグ、エスケープ、量指定子に敏感です。バックスラッシュの不足や広すぎる .* で結果が大きく変わります。

  • g はすべてのマッチを返し、なしの場合は通常、最初のマッチを見ます。
  • i は case-insensitive、m は ^ と $ を line ごとに動かします。
  • 丸括弧はキャプチャグループを作ります。不要なら (?: ) を使います。
  • 大量のバックトラックは長いテキストを遅くするため、入れ子の量指定子を避けます。

正規表現テスターのよくある質問

/pattern/g と入力しますか?
いいえ。Pattern だけ入力し、flags は別の control で設定します。
Match が長すぎるのはなぜですか?
.* と .+ は既定で貪欲です。.*? や、より具体的な文字クラスを試してください。
Test テキストはアップロードされますか?
いいえ。Matching はブラウザー内で実行され、wetool.site へ送信されません。

Regex Tester と本番の入力検証

Tester は素早い feedback 用です。本番環境の検証では境界条件、空の値、Unicode 入力、バックエンドの正規表現エンジンとの差も確認してください。

壊滅的バックトラッキングのチェックリスト

短いサンプルで動く正規表現でも、長い入力で止まることがあります。リリース前に入れ子の量指定子と広すぎるワイルドカードを確認します。

  • (.*)+、(.+)+、(a|aa)+ のような、爆発的に遅くなる入れ子や重複したパターンを避けます。
  • 可能なら .* ではなく明示的な文字クラスを使います。カンマ区切りのフィールドなら [^,]* が例です。
  • ユーザーが制御できる入力の長さを制限し、サーバー側のタイムアウトを設定するか、安全な実行制御のある正規表現エンジンを使います。

JavaScript の正規表現と他言語エンジンの差

オンラインのテスターで通っても、バックエンドのエンジンが同じ動きをするとは限りません。フラグ、後読み、Unicode、名前付きキャプチャはエンジンにより異なります。

  • JavaScript の g、i、m、s、u、y flags は PCRE、Python、Go options と完全には対応しません。
  • 後読み、Unicode プロパティエスケープ、名前付きグループは、古いブラウザーや一部のバックエンド実行環境で使えない場合があります。
  • Backend へ移す前に対象言語の単体テストで空の値、長い入力、emoji、改行を含むケースを確認します。