正規表現マップメンテナンスツール¶
高速検索機能 (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
ワークフロー¶
マップ ファイルを 作成または編集します (新しいルールの追加など)。
タグ付けスクリプトを実行します。
対話型モード:
スクリプトは生成された提案を表示します。
「ENTER」を押して承認します。
スキップするには「s」と入力します。
生成に失敗した残りのパターンをすべてスキップする場合は、「sa」(すべてスキップ)と入力します。
変更をコミットします。
注意: スクリプトは既存の
# EXAMPLE:タグを無視するため、繰り返し実行しても安全です。