דילוג לתוכן המרכזי
מודול 1 · שיעור 3 מתוך 43/32 בקורס~8 min
שיעורי מודול (3/4)

התו הכללי: הנקודה `.`

הנקודה . בביטוי הרגולרי הוא תו כללי: הוא תואם כל יחיד תו\u2026 למעט חריג אחד חשוב: הוא לא תואם ל קו חדש (\n).

Code
Pattern: c.t
Sample:  cat cot cut c@t c\nt
         ^^^ ^^^ ^^^ ^^^

שלוש אותיות: c, כל תו, t. אין שורה חדשה בין לבין, אז c\nt אינו תואם (כברירת מחדל).

הנקודה שימושית ביותר אך גם מסוכנת: משתמשים בה ללא משמעת לוכד יותר ממה שהתכוונת. בשילוב עם המכמים במודול 2 (.*, .+?) זה המקור ל-90% מהדפוסים ש"לא עובדים כמוני צפוי".

הדגל s: "dotAll"

עם הדגל s (נקרא גם dotAll או שורה אחת) הנקודה תואמת כל דמות, כולל שורה חדשה. שימושי לחילוץ בלוקים המתפרשים שורות מרובות.

Code
Pattern: <p>.*</p>
Flag:    gs
Sample:  <p>prima\nseconda</p>
         ^^^^^^^^^^^^^^^^^^^^^

מגבלות והתנהגות של התו הכללי של הנקודה

הנקודה . היא תו כללי רב עוצמה, אך כברירת מחדל היא אינה תואמת לתווים בשורה חדשה (\\n). אם אתה רוצה שהנקודה תתאים לחלוטין לכל דבר, כולל שורות חדשות, עליך להפעיל את הדגל s (dotAll). היזהר בעת שילוב הנקודה עם מכמתים (.*), מכיוון שהיא נוטה לצרוך יותר מדי טקסט (התנהגות חמדנית).

נסה את זה

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

מצא כל שלישיה של תווים מופרדים בסוגריים, למשל. `(abc)`, `(xyz)`. השתמש בתווים כלליים עבור 3 הדמויות הפנימיות.

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

שלוש נקודות עבור שלוש תווים שרירותיים. הסוגריים הם מטא-תווים: יש להמלט עליהם עם \\.

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

סקירת התרגיל

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

חלץ את הבלוק בין `[INIZIO]` ו-`[FINE]`, שיכול להשתרע על פני מספר שורות. תזדקק לדגל `s` כך שהנקודה תתאים גם לשורות חדשות, ולגרסה ה'עצלה' של הכמת (`.*?`, מודול 2).

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

ללא הדגל s, הנקודה נעצרת בסוף השורה: הוסף אותה. הטופס .*? (עצלן) עוצר את המשחק ב-[FINE] הראשון.

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

אתגר נוסף

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

Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).

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

התבנית משתמשת בנקודה '.' כדי לייצג את התו האמצעי.

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