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

انظر إلى الخلف: `(؟<=...)` `(؟<!...)`

النظر إلى الخلف هي صورة معكوسة للناظرين إلى الأمام: فهم ينظرون إلى قبل الوضع الحالي، لا يزال بعرض صفر.

  • (?<=...) -- النظرة الإيجابية للخلف: يجب أن يسبق النموذج.
  • (?<!...) -- النظرة الخلفية السلبية: يجب ألا يسبق النموذج.
Code
Pattern: (?<=\$)\d+
Sample:  Costo $100, sconto -25, totale $75.
                ^^^                  ^^

$ ليس موجودًا في المباراة، ولكنه يعمل كـ شرط: أرقام فقط مسبوقة بمطابقة علامة الدولار.

النظرة السلبية للخلف

Code
Pattern: (?<!\w)\d+
Sample:  Codice abc123 e numero 456.
                              ^^^

(?<!\w) يتطلب عدم وجود أي حرف كلمة قبل الأرقام: تم استبعاد abc123 (قبل 123 يوجد c، و\w)، و456 يطابق (قبل هناك مساحة).

الفرق الرئيسي مقابل المجموعة غير الملتقطة

Code
\\$\\d+         matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+    matches "100":  the match contains ONLY the digits.

إذا كنت بحاجة إلى استخراج القيمة "النظيفة" بدون البادئة، انظر إلى الخلف هو الاختيار الصحيح.

توافق Lookbehind في JavaScript

الموجب (?<=...) والسالب (?<!...) انظر إلى الخلف وتحقق مما يسبق الموضع الحالي. في JavaScript، يتم دعمها بدءًا من ES2018؛ في المتصفحات القديمة أو محركات Node.js القديمة، قد تتسبب في حدوث أخطاء في تجميع بناء الجملة.

جربه

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

استخرج فقط المبلغ الرقمي (بدون علامة $) من الأسعار الموجودة في النص.

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

حرك \\$ داخل نظرة خلفية إيجابية (?<=\\$): شرط موضع، وليس جزءًا من المباراة.

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

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

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

ابحث عن كل تسلسل من الأرقام غير مسبوق بحرف أو رقم (على سبيل المثال، أرقام "معزولة"، وليس أجزاء من التعليمات البرمجية مثل "abc123").

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

استخدم نظرة خلفية سلبية (?<!\\w) لاستبعاد وجود حرف أو رقم قبله.

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

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

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

Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.

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

حرك علامة الطرح - داخل الشكل الموجب للخلف (؟<=-).

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