שיעורי מודול (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.אם אתה צריך לחלץ את הערך "נקי" ללא הקידומת, הסתכל אחורה היא הבחירה הנכונה.
תאימות מבט מאחור ב-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 ניסיונות