دروس الوحدة (2/4)
نظرة سلبية إلى الأمام: `(؟!...)`
النظرة المستقبلية السلبية (?!...) هي الأخت المظلمة للنظرة الإيجابية:
يتطلب ألا يتبع النمط المحدد الموضع الحالي. إنه كذلك
لا يزال عرض صفر: لا يتم استهلاك أي حرف.
Pattern: \d+(?! euro)
Sample: Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
^^يطابق 75 فقط، لأنه التسلسل الوحيد من الأرقام الذي لا يتبعه
محمي_INLINE_2. الأرقام 100 و 25 متبوعة بـ euro وهما
مستبعد.
أنماط النظرة السلبية النموذجية
^(?!.*errore).*$-- سطر لا يحتوي على كلمة "errore".\b(?!the\b)\w+\b-- كلمة ليستthe.(?!\s)-- الموضع الحالي ليس مسافة بيضاء (مفيد كـ "قص").
Pattern: ^(?!.*\.bak$).*$
Sample (multiline with flag m):
foto.jpg
backup.bak
documento.txt
Match: foto.jpg, documento.txt (excludes backup.bak)الاستثناءات المتقدمة عبر النظرة الأمامية السلبية
يعد المظهر السلبي (?!...) ضروريًا لتنفيذ منطق الاستبعاد (مثل التحقق من أن كلمة المرور لا تحتوي على كلمات قاموس أو أن المعرف ليس كلمة رئيسية محجوزة مثل class أو function).
جربه
ابحث عن كل رقم لا يتبعه "اليورو" (وبالتالي باستثناء أسعار اليورو).
إظهار التلميح
استخدم (؟! ...) لقول "يجب ألا يتبع". يجب ألا يظهر التسلسل `اليورو` بعد ذلك.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
ابحث عن كل كلمة مكونة من 3 أحرف على الأقل ليست "the" (حساسة لحالة الأحرف).
إظهار التلميح
مباشرة بعد \\b افتح نظرة أمامية سلبية (؟!the\\b) تستبعد فقط الكلمة the.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Find all words consisting of letters that do not contain the letter `x` at any position (e.g. match `test`, `game` but not `extra`, `box`).
إظهار التلميح
استخدم نظرة أمامية سلبية (؟!\\w*x) مباشرة بعد حد الكلمة \\b.
الحل متاح بعد 3 من المحاولات