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

חלופה: `|`

הצינור | הוא OR של הביטוי הרגולרי: התבנית תואמת אם אחד מה התאמות חלופות. העדיפות שלו נמוכה מאוד: | מפרידה הכל משמאלו וימינה עד לקבוצה הסוגרת או לתחילת התבנית.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

סוגריים מניבים עדיפות

ללא סוגריים, החלופות משתרעות מההתחלה ועד הסוף של התבנית. כמעט תמיד אתה רוצה להגביל את ה-OR ל-חלק מהתבנית: עטפו אותו קבוצה.

Code
Pattern   Significato (errato vs corretto)
^a|b$     "inizio + a" oppure "b + fine"           (probabilmente sbagliato)
^(a|b)$   "inizio + (a oppure b) + fine"           (probabilmente giusto)

לגבי הסדר הטיפוסי של חלופות: שים את הכי הרבה הספציפיים/הארוכים ביותר תחילה. המנוע מנסה משמאל לימין ועוצר ב- הראשון שתואם: gat|gatto תמיד יתאים רק לgat.

עדיפות ובידוד חלופות

לאופרטור | יש עדיפות נמוכה מאוד. אם אתה כותב ^abc|def$, אתה מחפש "מחרוזת שמתחילה ב-abc או מחרוזת המסתיימת ב-def". כדי לחפש "התחלה של מחרוזת ואחריה abc או def, ואחריו סוף מחרוזת", עליך לכתוב ^(abc|def)$.

נסה את זה

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

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

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

הצינור מפריד בין חלופות. השתמש בדגל g כדי לתפוס את כולם.

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

סקירת התרגיל

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

מצא את המילים 'gennaio' או 'febbraio' כמילים שלמות בלבד (השתמש ב-\\b כדי להימנע מהתאמה בתוך מילים ארוכות יותר). השתמש בסוגריים כדי להגביל את החלופה.

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

\\b(gennaio|febbraio)\\b מעגן את הבחירה למילים שלמות.

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

אתגר נוסף

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

מצא שמות קבצים המסתיימים בסיומת `.jpg`, `.png` או `.gif`.

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

השתמש בצינור בתוך קבוצה לסירוגין בין הרחבות.

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