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

גבולות מילים: `\b` `\B`

\b הוא עוגן גבול מילים: הוא תואם את המיקום בין תו מילה (\w) ותו שאינו מילה (\W, או ההתחלה/סוף של המחרוזת). כמו ^ ו$, הוא אינו צורך תווים.

Code
Pattern: \bgatto\b
Sample:  Il gatto e la gattina giocano.
            ^^^^^

gatto מתאים רק בתור מילה שלמה: בתוך gattina הרצף gatto לא שם (o הסופי חסר), אבל הוא לא יתאים gatti גם בגלל שה-i הסופי הוא תו מילה.

\B הוא ההפך: הוא תואם למיקום שאינו מילה גבול.

מציאת "מילים שלמות"

השימוש האופייני ביותר ב-\b הוא "להתאים את המילה X רק כשהיא מבודדת, לא כחלק ממילה אחרת":

Code
\bif\b   matches 'if' but not 'sniff', 'gift', 'lifetime'.

גבולות מילים ותווים שאינם מילים

הגבול \\b אינו תואם אף תו פיזי; זה מבחן עמדה. קיים גבול \\b בין תו \\w לבין תו שאינו \\w (או התחלה/סוף טקסט). השלילה \\B טוענת שהמיקום הנוכחי אינו גבול מילים.

נסה את זה

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

מצא כל מופע של כל המילה 'חתול' (לא תלוי רישיות). זה לא חייב להתאים ל'קטגוריה', 'לשרשר', 'פיזור'.

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

לעטוף 'חתול' בין שני \\b: גבול בהתחלה וגבול בסוף.

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

סקירת התרגיל

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

מצא כל מספר שלם שאינו חלק ממזהה (למשל, `42` כן, אבל לא `var42` ולא `42abc`). השתמש ב-\\b משני הצדדים.

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

\\b\\d+\\b תואם רק רצפי ספרות 'מבודדים'. ל-abc42 יש 'c' (מילה) לפני ה-42.

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

אתגר נוסף

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

Find the sequence `cat` only if it starts a longer word, excluding when it appears as a whole word or at the end (e.g. match `catalog` but not `wildcat` or isolated `cat`).

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

השתמש ב-\\b בתחילת החתול (גבול מילה) וב-\\B בסוף (גבול שאינו מילה).

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