Flags ?
一致結果はありません
ツール説明
正規表現テスターについて
Regex Tester は JavaScript の正規表現をテキストに対して実行し、マッチ、キャプチャグループ、マッチ位置をその場で表示します。
メール、URL、ログ行、抽出、フォーム検証のパターンのデバッグに使え、処理はブラウザー内で行われます。
Regex Tester の使い方
- 外側の / / を付けずに正規表現を入力します。
- 必要に応じて g、i、m、s、u、y flags を有効にします。
- テスト用のテキストを貼り付け、各マッチ、キャプチャグループ、位置を確認します。
よくある利用場面
- フォーム検証の正規表現が正しい入力を拒否しないか確認する。
- ログやテキストから 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、改行を含むケースを確認します。