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

  1. Erstellen oder bearbeiten Sie eine Kartendatei (z. B. Hinzufügen neuer Regeln).

  2. Führen Sie das Tagger-Skript aus.

  3. 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.

  1. Übernehmen Sie die Änderungen.

Hinweis: Das Skript ignoriert vorhandene „# EXAMPLE:“-Tags, sodass eine wiederholte Ausführung sicher ist.