دروس الوحدة (3/4)
انظر إلى الخلف: `(؟<=...)` `(؟<!...)`
النظر إلى الخلف هي صورة معكوسة للناظرين إلى الأمام: فهم ينظرون إلى قبل الوضع الحالي، لا يزال بعرض صفر.
(?<=...)-- النظرة الإيجابية للخلف: يجب أن يسبق النموذج.(?<!...)-- النظرة الخلفية السلبية: يجب ألا يسبق النموذج.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^$ ليس موجودًا في المباراة، ولكنه يعمل كـ شرط: أرقام فقط
مسبوقة بمطابقة علامة الدولار.
النظرة السلبية للخلف
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) يتطلب عدم وجود أي حرف كلمة قبل الأرقام:
تم استبعاد abc123 (قبل 123 يوجد c، و\w)، و456 يطابق (قبل
هناك مساحة).
الفرق الرئيسي مقابل المجموعة غير الملتقطة
\\$\\d+ matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+ matches "100": the match contains ONLY the digits.إذا كنت بحاجة إلى استخراج القيمة "النظيفة" بدون البادئة، انظر إلى الخلف هو الاختيار الصحيح.
توافق Lookbehind في JavaScript
الموجب (?<=...) والسالب (?<!...) انظر إلى الخلف وتحقق مما يسبق الموضع الحالي. في JavaScript، يتم دعمها بدءًا من ES2018؛ في المتصفحات القديمة أو محركات Node.js القديمة، قد تتسبب في حدوث أخطاء في تجميع بناء الجملة.
جربه
استخرج فقط المبلغ الرقمي (بدون علامة $) من الأسعار الموجودة في النص.
إظهار التلميح
حرك \\$ داخل نظرة خلفية إيجابية (?<=\\$): شرط موضع، وليس جزءًا من المباراة.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
ابحث عن كل تسلسل من الأرقام غير مسبوق بحرف أو رقم (على سبيل المثال، أرقام "معزولة"، وليس أجزاء من التعليمات البرمجية مثل "abc123").
إظهار التلميح
استخدم نظرة خلفية سلبية (?<!\\w) لاستبعاد وجود حرف أو رقم قبله.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.
إظهار التلميح
حرك علامة الطرح - داخل الشكل الموجب للخلف (؟<=-).
الحل متاح بعد 3 من المحاولات