重要なポイント
- 01テスターはあなたのブラウザのネイティブ JavaScript RegExp エンジンを使用するため、結果は Node.js や最新ブラウザが本番環境で生成するものと正確に一致します。
- 02すべての6つの JavaScript フラグ(g, i, m, s, y, u)が個別に利用可能です。
- 03置換テンプレートは強力な置換プレビューのために $1, $2, $&, $$ をサポートします。
- 04サーバーに何も送信されません - パターンとテスト文字列はあなたのブラウザに完全に留まります。
専用正規表現テスターが IDE より勝る理由
正規表現は強力ですが、一目での読み方が悪名高いです。経験豊富な開発者でも驚きに遭遇します: 改行を飲み込むドット、貪欲な量指定子が多すぎて消費、または1つのオフキャプチャグループです。専用テスターは周囲のコードを取り除き、パターンと入力文字列のみを一度に反復できます。
Handytool の正規表現テスターはブラウザのネイティブ ECMAScript RegExp エンジンで評価するため、翻訳層がなく、フレーバーの不一致もありません。テスターがマッチすると言えば、あなたの JavaScript コードも同様にします。フラグをトグル、新しいサンプル文字列を貼り付け、結果が即座に更新されます - 実行ボタンは不要です。
正規表現パターンをテストする方法
全ワークフローは1分以内です。
- 01
パターンを貼り付けまたは入力
正規表現をパターンフィールドに入力します。周囲のスラッシュは省略 - フラグは別に設定されます。
- 02
フラグを設定
g, i, m, s, y, u を個別にトグルします。グローバルフラグはほぼ常に複数マッチのユースケースに必要です。
- 03
テスト文字列を貼り付け
マッチするテキストを追加します。すべてのキーストロークがパターンを再実行し、入力のマッチをハイライトします。
- 04
キャプチャグループを検査
マッチリストをスクロールして各マッチの位置とすべての番号付きキャプチャグループの値を確認します。
- 05
置換をプレビュー
置換テンプレートに $1, $2, または $& を使用して、置換された出力をリアルに確認します - String.replace() 呼び出しを作成する前に検証するのに最適です。
クイック正規表現デバッグチェックリスト
バグを想定する前に、これらを実行してください:
- 01複数のマッチが予想される場合、グローバルフラグが有効になっていますか?
- 02ドットが改行にマッチする必要がありますか? 該当する場合は s フラグを有効にします。
- 03置換で番号付きグループ($1, $2) または名前付きグループ(\k<name>)を使用していますか?
- 04パターンは Unicode エスケープ(\p{…})を使用していますか? u フラグが必要です。
- 05スティッキーフラグ(y)は各マッチに新しい lastIndex が必要ですか?
設計によるプライベート
正規表現テスターは入力するときにゼロのネットワークリクエストを行います。あなたのパターンとテスト文字列はブラウザの JavaScript エンジンで完全に処理されます - サーバーに接触することはありません。これは機密ログライン、内部API ペイロード、またはデバッグ時の機密文字列を貼り付けるのに安全にします。
バックエンドが関係ないため、レート制限、アカウント必須、またはペーストサイズ制限もありません。ほとんどの日常的なパターンと文字列は1ミリ秒以下で評価されます。
正規表現テスター FAQ
このテスターはどの正規表現フレーバーを使用しますか?
JavaScript(ECMAScript)。パターンはブラウザのネイティブ RegExp エンジンで評価され、Node.js と最新ブラウザの動作と正確に一致します。後読み、名前付きグループ、Unicode プロパティエスケープ(\p{…} と u フラグ)はすべてサポートされます。
あなたのパターンまたはテスト文字列はページを離れますか?
いいえ。すべてあなたのブラウザでローカルに実行されます - パターンを入力する、フラグを変更する、置換をプレビューするときにネットワークリクエストは行われません。
置換フィールドでキャプチャグループを使用するにはどのようにしますか?
番号付きグループに $1, $2, … を使用し、全体マッチに $& を、リテラルドル記号を挿入する場合は $$ を使用します。プレビューはパターンまたはテンプレートのいずれかを変更するとリアルに更新されます。
これは Python または PCRE パターンに対して機能しますか?
エンジンは JavaScript なので、ほとんどの基本パターンは同じように動作しますが、Python スタイルの (?P<name>…) 名前付きグループと所有量指定子はサポートされていません。JS 相当物を使用します - (?<name>…) 名前付きグループの場合。
なぜ私の正規表現は改行全体でマッチしないのですか?
s(dot-all)フラグを有効にするか、. を [\s\S] に置き換えます。なしで、ドットは改行を除くすべての文字にマッチします。