דילוג לתוכן המרכזי
eLearner.app

קורס אינטראקטיבי

קורס רגקס

למד ביטויים רגולריים מאפס, באנגלית, עם מנוע שמריץ כל דפוס ישירות בדפדפן ומראה לך התאמות בזמן אמת.

01 · מודול 1 - יסודות

4 שיעורים

היסודות של הרקס: תבניות מילוליות, כיתות תווים בסיסיות, התו הכללי `.` ותווים מטא-נמלטים.

  1. 1.1דפוסים מילולייםתווים רגילים, רגישות רישיות והרצה ראשונה: התאמה ואינדקס.~8 min
  2. 1.2שיעורים בסיסיים: \d \w \sהמחלקות המוגדרות מראש עבור ספרות, תווי מילים ורווח לבן (וגרסאותיהם השלילה).~10 min
  3. 1.3התו הכללי: הנקודה `.`הדמות `.` תואמת כמעט הכל: מה היא כוללת, מה היא לא כוללת, ומדוע הדגל `s` חשוב.~8 min
  4. 1.4מטא-דמויות בורחות12 המטא-תווים שצריך לברוח עם `\`, מתי אתה צריך קו נטוי כפול ולמה.~10 min

02 · מודול 2 - מכמתים

4 שיעורים

כמה לחזור על: `*`, `+`, `?`, מרווחים `{n,m}` וההבדל בין חמדן לעצלן.

  1. 2.1`*`, `+`, `?`אפס או יותר, אחד או יותר, אופציונלי: שלושת המכמים הבסיסיים.~10 min
  2. 2.2כמויות מדויקות `{n,m}`בדיוק 'n', מ-'n' ל-'m', לפחות 'n': המכמת המספרי.~10 min
  3. 2.3חמדן לעומת עצלןכברירת מחדל, מכמים הם חמדנים (`.*`); הוסף `?` עבור הגרסה העצלה (`.*?`).~10 min
  4. 2.4חזרה לאחור: סקירה כלליתמה המנוע עושה כאשר מכמת חמדנות נכשל, ומדוע זה יכול להיות יקר.~12 min

03 · מודול 3 - עוגנים וגבולות

4 שיעורים

מיקום, לא תווים: עיגון להתחלה/סוף של המחרוזת, לגבולות מילים ולהתחלה/סוף של כל שורה עם דגל 'm'.

  1. 3.1התחלה וסיום: `^` ו-`$`עיגון תבנית לתו הראשון או האחרון של המחרוזת.~8 min
  2. 3.2גבולות מילים: `\b` `\B`המעבר בין מילה לתווים שאינם מילים; למצוא מילים שלמות.~10 min
  3. 3.3דגל 'm': רב קועם הדגל 'm', '^' ו-'$' עוגנים להתחלה/סוף של כל שורה.~10 min
  4. 3.4קווים ריקים וקצץדפוסים שימושיים: התאמת שורות ריקות, חיתוך רווחים לבנים בתחילת/סוף שורה.~10 min

04 · מודול 4 - קבוצות וחילופין

4 שיעורים

קבץ עם `()`, בחר בין חלופות עם `|`, הימנע מללכוד עם `(?:...)`, תן שם לקבוצות עם `(?<name>...)` והפנה חזרה ללכידה קודמת עם הפניות אחורה.

  1. 4.1קבוצות לכידה: `(...)`סוגריים לקבוצה ולכידה; גישה לקבוצות 1, 2, 3... בהתאמות.~10 min
  2. 4.2חלופה: `|`הצינור בוחר בין שתי תבניות או יותר; קדימות וסוגריים.~10 min
  3. 4.3קבוצות שאינן לוכדות: `(?:...)`קבץ ללא יצירת לכידה: שימושי כאשר אתה רק צריך לכמת או להחליף.~10 min
  4. 4.4קבוצות עם שם והפניות לאחור`(?<name>...)` כדי לתת שם; `\1` `\k<name>` להתייחסות חזרה ללכידה.~12 min

05 · מודול 5 - שיעורי אופי

4 שיעורים

הגדר קבוצות מותאמות אישית עם `[...]`, השתמש בטווחים, שלל עם `[^...]` והגיע למאפייני Unicode עם `\p{...}` ודגל `u`.

  1. 5.1ערכות תווים: `[abc]`סוגריים מרובעים מגדירים קבוצה של תווים המותרים במיקום אחד.~8 min
  2. 5.2טווחים בתוך מחלקות: `[a-z0-9]`מרווחים דרך המקף; שילוב טווחים ותווים בודדים.~8 min
  3. 5.3שלילה: `[^...]`מחלקה מבוטלת תואמת לכל דבר **חוץ** לתווים הרשומים.~8 min
  4. 5.4נכס Unicode בורח`\p{L}`, `\p{N}`, `\p{Script=...}` עם דגל ה-u: מחלקות Unicode סמנטיות.~12 min

06 · מודול 6 - מבט סביב

4 שיעורים

הצהרות ברוחב אפס: הסתכל קדימה או אחורה במחרוזת מבלי לצרוך תווים. מבט קדימה `(?=)` `(?!)`, מבט מאחורי `(?<=)` `(?<!)`.

  1. 6.1מבט חיובי: `(?=...)`בדוק שדפוס מסוים עוקב אחר המיקום הנוכחי, מבלי לצרוך אותו.~10 min
  2. 6.2מבט שלילי: `(?!...)`בדוק שדפוס מסוים אינו עוקב אחר המיקום הנוכחי.~10 min
  3. 6.3הסתכל מאחור: `(?<=...)` `(?<!...)`גרסאות ה"מבט לאחור" של מבט מסביב; תמיכה ב-ES2018+.~12 min
  4. 6.4מבט סביב בפועלחלץ ערך מבלי לכלול את ההקשר, אמת סיסמאות, נתח מספרים מופרדים.~12 min

07 · מודול 7 - דגלים, החלפה, פיצול

4 שיעורים

כל הדגלים (כולל `d`, `v`), `String.prototype.replace`/`replaceAll`/`split` עם regex, הפניות ל-`$1`/`$<name>` במחרוזת ההחלפה והחלפת התקשרויות חוזרות.

  1. 7.1כל הדגלים בפירוט`g i m s u v y d`: מה כל אחד עושה ואיך הם משלבים.~12 min
  2. 7.2החלפה בסיסית ו-`$1`החלף התאמות במחרוזת קבועה או בהפניות אחוריות `$1` / `$<name>`.~10 min
  3. 7.3החלף בהתקשרות חוזרתפונקציית החלפה: הפיכת כל התאמה עם קוד JS שרירותי, גישה לקבוצות.~12 min
  4. 7.4פיצול עם regexפיצול מחרוזת על תבנית (CSV מתירנית, טוקנייזר מינימלי).~10 min

08 · מודול 8 - תרגול

4 שיעורים

חבר את הכל יחד על בעיות אמיתיות: אמת מיילים, ניתוח יומנים, חילוץ כתובות URL/IPs, כתיבת דפוסים עמידים ל-ReDoS.

  1. 8.1אימות מיילדפוס "טוב מספיק" עבור מיילים, עם הפשרה מוסברת.~12 min
  2. 8.2מנתח יומן אפאצ'יחלץ IP, שיטה, נתיב וקוד מצב משורת יומן באמצעות קבוצות עם שם.~12 min
  3. 8.3חילוץ כתובות URL וכתובות IPזיהוי כתובות http(ים) וכתובות IPv4 בטקסט חופשי.~12 min
  4. 8.4כתיבת תבניות בטוחות ב-ReDoSזיהוי תבניות קטסטרופליות (`(a+)+b`), שחזר אותן, השתמש בכימות דמויות אטומיות.~14 min