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

מטא-דמויות בורחות

לחלק מהדמויות ב-Regex יש משמעות מיוחדת: הם נקראים מטא-דמויות. אם אתה רוצה להתאים את הדמות המילולית (למשל, אמיתי ., + אמיתי, סוגריים אמיתיים) אתה צריך להקדים אותם עם לאכסון אחורי \, אשר בורח מהם.

המטא-תווים שיש לזכור הם שתים עשרה:

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(/ הוא לא באמת מטא-דמות מנוע, אבל יש לברוח ממנו הסימון המילולי של JavaScript /.../.)

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

כאן אנו בורחים מ$ (עוגן קצה המיתר) ומ-. (תו כללי) כדי להתאים את תווים מילוליים בפורמט המחיר "דולר + מספר + נקודה + שתי ספרות".

קו נטוי כפול במיתרי JS

כשאתה כותב דפוס בתוך מחרוזת JavaScript (כמו שאתה עושה אצלנו תרגילים) יש להכפיל את הנטוי האחורי. מחרוזת JS '\\d' מכילה שני תווים (\ וd) והוא בדיוק תבנית הביטוי הרגולרי \d.

JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash

עורך הקורס מציג את התבנית כבר מפוענחת (אתה רואה סינגל \d); אתה לא צריך להכפיל שום דבר בעצמך.

12 המטא-תווים המיוחדים

התווים עם משמעויות מיוחדות במנוע הם בדיוק 12: \\\ ^ $ . | ? * + ( ) [ {. אם אתה רוצה להתאים אותם כטקסט מילולי, עליך להקדים אותם עם קו נטוי אחורי. בסביבות מסוימות (למשל, מחרוזות JS שאינן גולמיות), ייתכן שיהיה עליך להכפיל את הנטוי האחורי (\\\\).

נסה את זה

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

מצא כל מחיר בפורמט `$N.NN` (דולר, ספרה אחת או יותר, נקודה, שתי ספרות). זכור לברוח '$' ו-'.'.

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

$ חייב להיות ב-escape בתור \\$, הנקודה בתור \\. - אחרת הנקודה מתאימה לכל דבר.

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

סקירת התרגיל

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

מצא כל סימן שאלה מילולי `?` בטקסט. `?` הוא מטא-דמות: יש לברוח ממנה.

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

ללא בריחה, ? יהיה מכמת (מודול 2). שימו לפניו \\.

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

אתגר נוסף

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

Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.

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

הכנס קו נטוי אחורי לפני כל נקודה כדי לברוח ממנה.

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