דילוג לתוכן המרכזי
מודול 6 · שיעור 4 מתוך 424/32 בקורס~12 min
שיעורי מודול (4/4)

מבט סביב בפועל

בואו נחבר את כל ארבעת צורות ההסתכלות יחד בתרחישים של העולם האמיתי. סביבות מבט זוהרות כאשר אתה צריך:

  1. חלץ ערך ללא ההקשר המזהה אותו.
  2. אמת מחרוזת מול מספר תנאים עצמאיים.
  3. התאמות מסנן שעומדות בתנאים מסוימים אך לא באחרים.

אימות סיסמה

Code
Pattern: ^(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z\d]).{8,}$
Checks:
  - at least one uppercase     (?=.*[A-Z])
  - at least one digit         (?=.*\d)
  - at least one symbol        (?=.*[^a-zA-Z\d])
  - minimum length 8           .{8,}

כל מבט קדימה בודק תנאי אחד, החל מההתחלה (^). הם כן כולם ברוחב אפס: המנוע נשאר בעמדה 0 ואז צורך עם .{8,}$.

חילוץ בין תוחמים

Code
Pattern: (?<=\().+?(?=\))
Sample:  Funzione foo(bar) e baz(qux, qix)
Match: "bar", "quux, qix" (without parentheses)

מבט אחורי + מבט קדימה + כימת עצלן: מחלץ את התוכן בפנים הסוגריים מבלי לכלול אותם.

שילוב של מבט קדימה ומבט לאחור

שימוש ב-lookahead ו-lookbehind ביחד מאפשר לבודד מחרוזות שנמצאות בתוך תגים או פורמטים ספציפיים (למשל, חילוץ טקסט בין שני תגים מבלי לכלול את התגים בהתאמה הסופית). זה ימנע פעולות ניקוי מחרוזות עוקבות.

נסה את זה

פעילות גופנית#regex.m6.l4.e1
ניסיונות: 0טוען...

חלץ את הערך של כל הקצאת `key=value` מהיומן: רק הערכים (ללא מפתחות, ללא `=`). ערכים עשויים להכיל אותיות וספרות.

טוען עורך...
הצג רמז

העבר `=` בתוך מבט מאחור (?<==): כך ההתאמה מכילה רק את הערך.

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#regex.m6.l4.e2
ניסיונות: 0טוען...

מצא לאילו מילים יש לפחות אות אחת גדולה ולפחות ספרה אחת (בכל סדר), מצא אותן בטקסט.

טוען עורך...
הצג רמז

מבט כפול בהתחלה: (?=\\w*[A-Z])(?=\\w*\\d). לאחר מכן צורכים את המילה עם \\w+.

הפתרון זמין לאחר 3 ניסיונות

אתגר נוסף

פעילות גופנית#regex.m6.l4.e3
ניסיונות: 0טוען...

Extract only numerical digits that are enclosed exactly between parentheses, e.g. extract `102` from `(102)` without capturing the parentheses.

טוען עורך...
הצג רמז

Combine a positive lookbehind (?<=\( ) for the open parenthesis and a positive lookahead (?=\) ) for the closed one.

הפתרון זמין לאחר 3 ניסיונות