Outils de maintenance de carte Regex

Pour prendre en charge la fonctionnalité de recherche rapide (commande s / search_rules.sh), nous utilisons un script d’assistance qui annote automatiquement les modèles d’expression régulière avec des exemples lisibles par l’homme.

Pourquoi avons-nous besoin de ça ?

Nos fichiers FUZZY_MAP.py contiennent des expressions régulières complexes. Pour les rendre consultables via des chercheurs flous (fzf) sans avoir besoin de comprendre l’expression régulière brute, nous ajoutons des commentaires # EXAMPLE : au-dessus des modèles.

Avant:

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

Après (généré automatiquement) :

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

Le script Tagger (map_tagger.py)

Nous fournissons un script Python qui analyse tous les fichiers FUZZY_MAP.py et FUZZY_MAP_pre.py et génère automatiquement ces exemples.

###Installation Le script nécessite la bibliothèque « exrex » pour générer des correspondances aléatoires pour les expressions régulières complexes.

pip install exrex

Utilisation

Exécutez le script depuis la racine du projet :

python3 tools/map_tagger.py

Flux de travail

  1. Créez ou modifiez un fichier de carte (par exemple, en ajoutant de nouvelles règles).

  2. Exécutez le script Tagger.

  3. Mode interactif :

  • Le script vous montrera une suggestion générée.

  • Appuyez sur ENTER pour l’accepter.

  • Tapez « s » pour ignorer.

  • Tapez « sa » (ignorer tout) si vous souhaitez ignorer tous les modèles restants dont la génération échoue.

  1. Validez les modifications.

Remarque : Le script ignore les balises # EXAMPLE : existantes, il peut donc être exécuté à plusieurs reprises en toute sécurité.