立ち上げたもの
Jivaro は、2024 年 8 月に RegexWizard という名前でこのツールを初めて公開しました。当初の前提は控えめなものでした。正規表現を入力し、サンプル テキストを貼り付け、何が一致したかを簡単に確認できる場所をユーザーに提供するというものでした。これで実際の問題は解決されましたが、信頼性の高い正規表現の最初の層についてしか説明していませんでした。
1 つのサンプルに一致するパターンでも、エッジ ケースで失敗したり、間違った境界をキャプチャしたり、破壊的な置換を生成したり、敵対的な入力で CPU を過剰に消費したりする可能性があります。現在の Regex テスター & 置換ツール は、正規表現を、フォーラムや信頼からコピーする句読点としてではなく、検査およびテストする必要がある実行可能ロジックの小さな部分として扱います。
検査可能な正規表現が重要な理由
正規表現は、驚くほど多くの動作を短い文字列に圧縮します。アンカーは試合が開始される場所を変更します。量指定子は、トークンが消費するテキストの量を変更します。グループ化すると、優先順位と返されるデータの両方が変更されます。フラグは、大文字と小文字、行、およびグローバルの動作を変更します。間違ったルールをエンコードすると、パターンがもっともらしく見える可能性があります。
したがって、デザイン上の重要な選択は視認性です。有能なテスターは、一致する スパンが 、、どのグループがキャプチャされたのか、、 置換によってテキストがどのように変更されるか、、 既知の例が を通過するかどうかを明らかにする必要があります。これによりフィードバック ループが短縮され、デバッグが推測から観察に変わります。
強調表示されたスパンは、貪欲な一致、アンカーの欠落、および予期しない重複を明らかにします。
番号と名前が付けられたグループは、下流のコードが実際に何を受け取るかを明らかにします。
置換出力は、本番テキストまたはファイルに適用される前に表示されます。
現在のワークフロー
現在のアプリは、起動バージョンよりも完全なワークベンチです。これは、ライブ JavaScript マッチングとキャプチャ グループ検査、置換プレビュー、再利用可能なプリセット、ローカル パターン履歴、テスト ケース、エクスポート ツールを組み合わせたものです。これらのステージが 1 つのコンテキストを共有するため、この機能セットはまさに役立ちます。
JavaScript 式を構築し、グローバル、大文字と小文字、複数行、dotAll、Unicode、およびスティッキー動作を調整します。
実際のサンプル データに対して、一致したスパンと番号付きまたは名前付きのキャプチャを確認します。
他の場所に変更をコミットすることなく、置換をテストして参照をキャプチャします。
一致する必要がある入力または失敗する入力を記録し、後で編集することで予期される動作が壊れることがないようにします。
有用なパターンをローカルに保存し、メモリから再構築することなく最近の作業に戻ります。
レビューや下流の作業のために、試合データを実用的な形式でコピーまたはエクスポートします。
より安全な正規表現テスト方法
構文を記述する前に、ビジネス条件を平易な言葉で記述します。
有効な例、無効な例、空の例、長い例、および不正な形式の例を含めます。
一致が存在するかどうかだけでなく、完全な一致とすべてのキャプチャ グループを確認します。
繰り返しフィールドとオプションのフィールドを含むデータに対する置換をプレビューします。
信頼できない入力を使用する前に、長い敵対的文字列を試してパフォーマンスを確認してください。
| Case | なぜそれが重要なのか | 故障信号 |
|---|---|---|
| 予想される試合 | 通常のルールを確認します | 一致しない、または間違ったキャプチャ |
| ニアミス | パターンが許容的すぎるかどうかをテストします | 無効な入力は受け入れられます |
| 境界ケース | アンカー、セパレータ、および Unicode をチェックします | 部分一致またはシフト一致 |
| 長い入力 | 過剰な後戻りを暴露する | レイテンシの大幅な増加またはブラウザの停止 |
| 交換用ケース | キャプチャ参照とオプションのグループを検証します。 | 削除、重複、または不正な出力 |
制限とセキュリティ
このツールは、ブラウザの JavaScript 正規表現エンジンをテストします。ここで機能するパターンは、Python、PCRE、.NET、Java、Rust、またはデータベース エンジンでは異なる動作をする可能性があります。移植性は、パターンを実行する正確なランタイムに対して検証する必要があります。
パフォーマンスにも別途注目する必要があります。一部の入れ子になった数量指定子やあいまいな変更は、一般に ReDoS と呼ばれるサービス拒否リスクの一種である壊滅的なバックトラッキングを引き起こす可能性があります。ライブフィードバックや長時間入力のテストは警告の兆候を明らかにする可能性がありますが、正式な複雑さの証明にはなりません。信頼できない入力を処理するアプリケーションでは、慎重なパターン設計とタイムアウト、入力制限、およびセキュリティのレビューを組み合わせる必要があります。
2024年から何が変わったのか
2024 年の発表では、このプロジェクトを正規表現に怯えている人々のためのフレンドリーなテスト ページとして位置づけました。 2026 年の製品はより厳格です。即時のフィードバックは保持されますが、証拠、回帰ケース、置換レビュー、再利用、エクスポートといったパターンに沿ったワークフローがサポートされるようになりました。
名前の変更は同じシフトの一部です。 「Regex Tester & Replace Tool」は RegexWizard よりも意図的に賢くありませんが、検索、ナビゲーション、およびアクセシビリティのコンテキストにおいてははるかに便利です。ブランドの知識を必要とせずに仕事を説明します。
よくある質問
現在のツールは、ローカル ブラウザー処理用に設計されています。機密性の高いマテリアルは、組織のポリシーとブラウザのセキュリティ要件に従って処理する必要があります。
JavaScript 正規表現をテストするため、動作は PCRE、.NET、Python、または別の正規表現ではなく、ブラウザーの JavaScript エンジンに従います。
すべてのパターンが安全であることを証明できるツールはありません。ワークベンチは動作の公開に役立ち、テスト ケースをサポートしますが、信頼できない入力に対して使用されるパターンには依然としてパフォーマンスのレビューと防御制限が必要です。
Jivaro は機能優先のアプリ名に移動しました。 「Regex Tester & Replace Tool」は、アプリケーションを開く前にアプリケーションが何を行うかをユーザーに通知します。
関連するJivaroアプリ
分離されたWorkerでJavaScript正規表現をテストし、キャプチャグループの確認、置換プレビュー、テストケース実行、各言語向けコード断片のコピーをローカルで行えます。
アプリを開くCodeMirrorエディター、絞り込み可能なコンソール、レスポンシブプレビューを使って、HTML、CSS、JavaScriptの作成、確認、デバッグ、検索、保存、書き出しができます。
アプリを開くJSON、YAML、XML、CSV、TSV、NDJSON、Markdown、HTML、BBCode、URL、Base64、プレーンテキストをブラウザー内で直接整形・変換します。
アプリを開く出典と参考文献
- Regex テスターおよび置換ツールXXQPH0002QXZJivaro · ファーストパーティ
- MDN: 正規表現MDN Web ドキュメント · リファレンス
- MDN: グループと後方参照MDN Web ドキュメント · リファレンス
- OWASP: 正規表現によるサービス拒否 (ReDoS)OWASP · 参照

