regex-builder について
指定したエンジン向けに正規表現を作成、検証するためのスキルです。サンプルに基づくテスト、エンジン固有の挙動、バックトラッキングや入力サイズのリスクを重視します。
主な機能
- 01エンジンと要件の定義
- 02サンプルからパターンを構築
- 03対象ランタイムでテスト
- 04エスケープと Unicode 境界の確認
- 05バックトラッキングと入力リスクの評価
活用シーン
- 01アプリの検証用正規表現を作成
- 02一致・不一致の例でパターンを検証
- 03信頼できない入力への安全性を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jmerta/ codex-skills --skill regex-builderインストール後、Claude Code で/regex-builderを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
正規表現ビルダー
契約を定義する
対象のエンジンとバージョン、フラグ、複数行の動作、入力境界、キャプチャまたは置換の要件、代表的な一致例と不一致例を確認します。可能であれば、使用側のコードからこれらを推定し、リポジトリでは判断できない情報だけを質問します。
共通部分が検証されていない限り、JavaScript、Python、Java、.NET、RE2、PCRE2、またはコマンドラインツールで使えるパターンとして提示しないでください。
作成とテスト
- サンプルを区別できる最小限のリテラル構造から始めます。
- 契約で必要な場合に限り、アンカー、境界、区切り文字、Unicode の処理、キャプチャグループを追加します。
- 実際の対象エンジンでテストします。
rgは ripgrep のデフォルトエンジン、rg -Pは ripgrep の PCRE2 モードにのみ使用し、その他のフレーバーではアプリケーションのランタイムを使用します。 - 提供されたすべての一致例と不一致例を検証します。空の入力、隣接する一致、改行、Unicode の境界ケースも追加します。信頼できない入力の場合は、長い敵対的なニアミスまたは不一致を含め、実行時間を測定します。エンジンにタイムアウト機能がない場合は、アプリケーション側で入力サイズを制限してください。
- シェルや文字列リテラルのエスケープは、正規表現の構文とは別に確認します。
- 信頼できない入力に対して、曖昧な量指定子の入れ子や、制限のないバックトラッキングは避けます。文法や安全性の要件が読みやすい正規表現の範囲を超える場合は、より単純なパーサーを優先します。
提示する内容
以下を提示します。
- 正規表現とフラグ
- 対象エンジンと必要なバージョンまたは機能
- 使用する場合は、キャプチャグループまたは置換の対応表
- 対象ランタイムで実行でき、期待される結果を示す検証例
- 既知の制限事項、バックトラッキングのリスク、入力サイズのリスク
コメント
Markdown 対応