# أدوات صيانة خريطة Regex لدعم وظيفة البحث السريع (الأمر s` / `search_rules.sh`)، نستخدم برنامجًا نصيًا مساعدًا يقوم تلقائيًا بتعليق أنماط التعبير العادي بأمثلة يمكن للإنسان قراءتها. ## لماذا نحتاج هذا؟ تحتوي ملفاتنا `FUZZY_MAP.py` على تعبيرات عادية معقدة. لجعلها قابلة للبحث عبر أدوات البحث الغامضة (fzf) دون الحاجة إلى فهم التعبير العادي، نضيف تعليقات `# EXAMPLE:` فوق الأنماط. **قبل:** ```python ('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...) ``` **بعد (تم إنشاؤه تلقائيًا):** ```python # EXAMPLE: 1234-5678-9012-3456 ('CreditCard', r'\b(?:\d[ -]*?){13,16}\b', ...) ``` ## البرنامج النصي لـ Tagger (`map_tagger.py`) نحن نقدم برنامج Python النصي الذي يقوم بمسح جميع ملفات `FUZZY_MAP.py` و`FUZZY_MAP_pre.py` ويقوم بإنشاء هذه الأمثلة تلقائيًا. ### تثبيت يتطلب البرنامج النصي مكتبة `exrex` لإنشاء مطابقات عشوائية للتعبيرات المنطقية المعقدة. ```bash pip install exrex ``` ### الاستخدام قم بتشغيل البرنامج النصي من جذر المشروع: ```bash python3 tools/map_tagger.py ``` ### سير العمل 1. **إنشاء أو تحرير** ملف خريطة (على سبيل المثال، إضافة قواعد جديدة). 2. **تشغيل** البرنامج النصي لعلامة التمييز. 3. **الوضع التفاعلي:** - سيظهر لك البرنامج النصي اقتراحًا تم إنشاؤه. - اضغط على "ENTER" لقبوله. - اكتب `s` للتخطي. - اكتب `sa` (تخطي الكل) إذا كنت تريد تخطي كافة الأنماط المتبقية التي تفشل في الإنشاء. 4. **الالتزام** بالتغييرات. > **ملاحظة:** يتجاهل البرنامج النصي علامات `# EXAMPLE:` الموجودة، لذا فهو آمن للتشغيل بشكل متكرر.