الانتقال إلى المحتوى الرئيسي
الوحدة 6 · الدرس 2 من 422/32 في الدورة~10 min
دروس الوحدة (2/4)

نظرة سلبية إلى الأمام: `(؟!...)`

النظرة المستقبلية السلبية (?!...) هي الأخت المظلمة للنظرة الإيجابية: يتطلب ألا يتبع النمط المحدد الموضع الحالي. إنه كذلك لا يزال عرض صفر: لا يتم استهلاك أي حرف.

Code
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) -- الموضع الحالي ليس مسافة بيضاء (مفيد كـ "قص").
Code
Pattern: ^(?!.*\.bak$).*$
Sample (multiline with flag m):
  foto.jpg
  backup.bak
  documento.txt
Match: foto.jpg, documento.txt (excludes backup.bak)

الاستثناءات المتقدمة عبر النظرة الأمامية السلبية

يعد المظهر السلبي (?!...) ضروريًا لتنفيذ منطق الاستبعاد (مثل التحقق من أن كلمة المرور لا تحتوي على كلمات قاموس أو أن المعرف ليس كلمة رئيسية محجوزة مثل class أو function).

جربه

تمرين#regex.m6.l2.e1
المحاولات: 0جارٍ التحميل…

ابحث عن كل رقم لا يتبعه "اليورو" (وبالتالي باستثناء أسعار اليورو).

جارٍ تحميل المحرر…
إظهار التلميح

استخدم (؟! ...) لقول "يجب ألا يتبع". يجب ألا يظهر التسلسل `اليورو` بعد ذلك.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#regex.m6.l2.e2
المحاولات: 0جارٍ التحميل…

ابحث عن كل كلمة مكونة من 3 أحرف على الأقل ليست "the" (حساسة لحالة الأحرف).

جارٍ تحميل المحرر…
إظهار التلميح

مباشرة بعد \\b افتح نظرة أمامية سلبية (؟!the\\b) تستبعد فقط الكلمة the.

الحل متاح بعد 3 من المحاولات

التحدي الإضافي

تمرين#regex.m6.l2.e3
المحاولات: 0جارٍ التحميل…

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 من المحاولات