Regex-Kartenwartungstools¶
Zur Unterstützung der Schnellsuchfunktion („s“-Befehl / „search_rules.sh“) verwenden wir ein Hilfsskript, das Regex-Muster automatisch mit für Menschen lesbaren Beispielen annotiert.
Warum brauchen wir das?¶
Unsere „FUZZY_MAP.py“-Dateien enthalten komplexe reguläre Ausdrücke. Um sie über Fuzzy-Finder (fzf) durchsuchbar zu machen, ohne den rohen regulären Ausdruck verstehen zu müssen, fügen wir „# EXAMPLE:“-Kommentare über den Mustern hinzu.
Vor:
('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...)
Nachher (automatisch generiert):
# EXAMPLE: 1234-5678-9012-3456
('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...)
Das Tagger-Skript (map_tagger.py)¶
Wir stellen ein Python-Skript zur Verfügung, das alle Dateien „FUZZY_MAP.py“ und „FUZZY_MAP_pre.py“ scannt und diese Beispiele automatisch generiert.
Installation¶
Das Skript benötigt die „exrex“-Bibliothek, um zufällige Übereinstimmungen für komplexe reguläre Ausdrücke zu generieren.
pip install exrex
Nutzung¶
Führen Sie das Skript im Projektstammverzeichnis aus:
python3 tools/map_tagger.py
Arbeitsablauf¶
Erstellen oder bearbeiten Sie eine Kartendatei (z. B. Hinzufügen neuer Regeln).
Führen Sie das Tagger-Skript aus.
Interaktiver Modus:
Das Skript zeigt Ihnen einen generierten Vorschlag.
Drücken Sie „ENTER“, um es zu akzeptieren.
Geben Sie zum Überspringen „s“ ein.
Geben Sie „sa“ (alle überspringen) ein, wenn Sie alle verbleibenden Muster überspringen möchten, deren Generierung fehlschlägt.
Übernehmen Sie die Änderungen.
Hinweis: Das Skript ignoriert vorhandene „# EXAMPLE:“-Tags, sodass eine wiederholte Ausführung sicher ist.