正規表現マップメンテナンスツール

高速検索機能 (s コマンド / search_rules.sh) をサポートするために、人間が読める形式の例で正規表現パターンに自動的に注釈を付けるヘルパー スクリプトを使用します。

なぜこれが必要なのでしょうか?

FUZZY_MAP.py ファイルには複雑な正規表現が含まれています。生の正規表現を理解する必要がなく、ファジー ファインダー (fzf) 経由で検索できるようにするには、パターンの上に # EXAMPLE: コメントを追加します。

前に:

('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...)

後 (自動生成):

# EXAMPLE: 1234-5678-9012-3456
('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...)

タガー スクリプト (map_tagger.py)

すべての FUZZY_MAP.py および FUZZY_MAP_pre.py ファイルをスキャンし、これらのサンプルを自動的に生成する Python スクリプトを提供します。

インストール

このスクリプトでは、複雑な正規表現に対してランダムな一致を生成するために「exrex」ライブラリが必要です。

pip install exrex

### 使用法 プロジェクトのルートからスクリプトを実行します。

python3 tools/map_tagger.py

ワークフロー

  1. マップ ファイルを 作成または編集します (新しいルールの追加など)。

  2. タグ付けスクリプトを実行します。

  3. 対話型モード:

  • スクリプトは生成された提案を表示します。

  • 「ENTER」を押して承認します。

  • スキップするには「s」と入力します。

  • 生成に失敗した残りのパターンをすべてスキップする場合は、「sa」(すべてスキップ)と入力します。

  1. 変更をコミットします。

注意: スクリプトは既存の # EXAMPLE: タグを無視するため、繰り返し実行しても安全です。