mcpField
R
regex-builder

regex-builder

github.com/jmerta開発13144 回インストール10 週間前に更新
リポジトリ

regex-builder について

指定したエンジン向けに正規表現を作成、検証するためのスキルです。サンプルに基づくテスト、エンジン固有の挙動、バックトラッキングや入力サイズのリスクを重視します。

主な機能

  1. 01エンジンと要件の定義
  2. 02サンプルからパターンを構築
  3. 03対象ランタイムでテスト
  4. 04エスケープと Unicode 境界の確認
  5. 05バックトラッキングと入力リスクの評価

活用シーン

  1. 01アプリの検証用正規表現を作成
  2. 02一致・不一致の例でパターンを検証
  3. 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、またはコマンドラインツールで使えるパターンとして提示しないでください。

作成とテスト

  1. サンプルを区別できる最小限のリテラル構造から始めます。
  2. 契約で必要な場合に限り、アンカー、境界、区切り文字、Unicode の処理、キャプチャグループを追加します。
  3. 実際の対象エンジンでテストします。rg は ripgrep のデフォルトエンジン、rg -P は ripgrep の PCRE2 モードにのみ使用し、その他のフレーバーではアプリケーションのランタイムを使用します。
  4. 提供されたすべての一致例と不一致例を検証します。空の入力、隣接する一致、改行、Unicode の境界ケースも追加します。信頼できない入力の場合は、長い敵対的なニアミスまたは不一致を含め、実行時間を測定します。エンジンにタイムアウト機能がない場合は、アプリケーション側で入力サイズを制限してください。
  5. シェルや文字列リテラルのエスケープは、正規表現の構文とは別に確認します。
  6. 信頼できない入力に対して、曖昧な量指定子の入れ子や、制限のないバックトラッキングは避けます。文法や安全性の要件が読みやすい正規表現の範囲を超える場合は、より単純なパーサーを優先します。

提示する内容

以下を提示します。

  • 正規表現とフラグ
  • 対象エンジンと必要なバージョンまたは機能
  • 使用する場合は、キャプチャグループまたは置換の対応表
  • 対象ランタイムで実行でき、期待される結果を示す検証例
  • 既知の制限事項、バックトラッキングのリスク、入力サイズのリスク

コメント