קורס אינטראקטיבי
קורס רגקס
למד ביטויים רגולריים מאפס, באנגלית, עם מנוע שמריץ כל דפוס ישירות בדפדפן ומראה לך התאמות בזמן אמת.
01 · מודול 1 - יסודות
היסודות של הרקס: תבניות מילוליות, כיתות תווים בסיסיות, התו הכללי `.` ותווים מטא-נמלטים.
- 1.1דפוסים מילולייםתווים רגילים, רגישות רישיות והרצה ראשונה: התאמה ואינדקס.~8 min
- 1.2שיעורים בסיסיים: \d \w \sהמחלקות המוגדרות מראש עבור ספרות, תווי מילים ורווח לבן (וגרסאותיהם השלילה).~10 min
- 1.3התו הכללי: הנקודה `.`הדמות `.` תואמת כמעט הכל: מה היא כוללת, מה היא לא כוללת, ומדוע הדגל `s` חשוב.~8 min
- 1.4מטא-דמויות בורחות12 המטא-תווים שצריך לברוח עם `\`, מתי אתה צריך קו נטוי כפול ולמה.~10 min
02 · מודול 2 - מכמתים
כמה לחזור על: `*`, `+`, `?`, מרווחים `{n,m}` וההבדל בין חמדן לעצלן.
- 2.1`*`, `+`, `?`אפס או יותר, אחד או יותר, אופציונלי: שלושת המכמים הבסיסיים.~10 min
- 2.2כמויות מדויקות `{n,m}`בדיוק 'n', מ-'n' ל-'m', לפחות 'n': המכמת המספרי.~10 min
- 2.3חמדן לעומת עצלןכברירת מחדל, מכמים הם חמדנים (`.*`); הוסף `?` עבור הגרסה העצלה (`.*?`).~10 min
- 2.4חזרה לאחור: סקירה כלליתמה המנוע עושה כאשר מכמת חמדנות נכשל, ומדוע זה יכול להיות יקר.~12 min
03 · מודול 3 - עוגנים וגבולות
מיקום, לא תווים: עיגון להתחלה/סוף של המחרוזת, לגבולות מילים ולהתחלה/סוף של כל שורה עם דגל 'm'.
- 3.1התחלה וסיום: `^` ו-`$`עיגון תבנית לתו הראשון או האחרון של המחרוזת.~8 min
- 3.2גבולות מילים: `\b` `\B`המעבר בין מילה לתווים שאינם מילים; למצוא מילים שלמות.~10 min
- 3.3דגל 'm': רב קועם הדגל 'm', '^' ו-'$' עוגנים להתחלה/סוף של כל שורה.~10 min
- 3.4קווים ריקים וקצץדפוסים שימושיים: התאמת שורות ריקות, חיתוך רווחים לבנים בתחילת/סוף שורה.~10 min
04 · מודול 4 - קבוצות וחילופין
קבץ עם `()`, בחר בין חלופות עם `|`, הימנע מללכוד עם `(?:...)`, תן שם לקבוצות עם `(?<name>...)` והפנה חזרה ללכידה קודמת עם הפניות אחורה.
- 4.1קבוצות לכידה: `(...)`סוגריים לקבוצה ולכידה; גישה לקבוצות 1, 2, 3... בהתאמות.~10 min
- 4.2חלופה: `|`הצינור בוחר בין שתי תבניות או יותר; קדימות וסוגריים.~10 min
- 4.3קבוצות שאינן לוכדות: `(?:...)`קבץ ללא יצירת לכידה: שימושי כאשר אתה רק צריך לכמת או להחליף.~10 min
- 4.4קבוצות עם שם והפניות לאחור`(?<name>...)` כדי לתת שם; `\1` `\k<name>` להתייחסות חזרה ללכידה.~12 min
05 · מודול 5 - שיעורי אופי
הגדר קבוצות מותאמות אישית עם `[...]`, השתמש בטווחים, שלל עם `[^...]` והגיע למאפייני Unicode עם `\p{...}` ודגל `u`.
- 5.1ערכות תווים: `[abc]`סוגריים מרובעים מגדירים קבוצה של תווים המותרים במיקום אחד.~8 min
- 5.2טווחים בתוך מחלקות: `[a-z0-9]`מרווחים דרך המקף; שילוב טווחים ותווים בודדים.~8 min
- 5.3שלילה: `[^...]`מחלקה מבוטלת תואמת לכל דבר **חוץ** לתווים הרשומים.~8 min
- 5.4נכס Unicode בורח`\p{L}`, `\p{N}`, `\p{Script=...}` עם דגל ה-u: מחלקות Unicode סמנטיות.~12 min
06 · מודול 6 - מבט סביב
הצהרות ברוחב אפס: הסתכל קדימה או אחורה במחרוזת מבלי לצרוך תווים. מבט קדימה `(?=)` `(?!)`, מבט מאחורי `(?<=)` `(?<!)`.
- 6.1מבט חיובי: `(?=...)`בדוק שדפוס מסוים עוקב אחר המיקום הנוכחי, מבלי לצרוך אותו.~10 min
- 6.2מבט שלילי: `(?!...)`בדוק שדפוס מסוים אינו עוקב אחר המיקום הנוכחי.~10 min
- 6.3הסתכל מאחור: `(?<=...)` `(?<!...)`גרסאות ה"מבט לאחור" של מבט מסביב; תמיכה ב-ES2018+.~12 min
- 6.4מבט סביב בפועלחלץ ערך מבלי לכלול את ההקשר, אמת סיסמאות, נתח מספרים מופרדים.~12 min
07 · מודול 7 - דגלים, החלפה, פיצול
כל הדגלים (כולל `d`, `v`), `String.prototype.replace`/`replaceAll`/`split` עם regex, הפניות ל-`$1`/`$<name>` במחרוזת ההחלפה והחלפת התקשרויות חוזרות.
- 7.1כל הדגלים בפירוט`g i m s u v y d`: מה כל אחד עושה ואיך הם משלבים.~12 min
- 7.2החלפה בסיסית ו-`$1`החלף התאמות במחרוזת קבועה או בהפניות אחוריות `$1` / `$<name>`.~10 min
- 7.3החלף בהתקשרות חוזרתפונקציית החלפה: הפיכת כל התאמה עם קוד JS שרירותי, גישה לקבוצות.~12 min
- 7.4פיצול עם regexפיצול מחרוזת על תבנית (CSV מתירנית, טוקנייזר מינימלי).~10 min
08 · מודול 8 - תרגול
חבר את הכל יחד על בעיות אמיתיות: אמת מיילים, ניתוח יומנים, חילוץ כתובות URL/IPs, כתיבת דפוסים עמידים ל-ReDoS.
- 8.1אימות מיילדפוס "טוב מספיק" עבור מיילים, עם הפשרה מוסברת.~12 min
- 8.2מנתח יומן אפאצ'יחלץ IP, שיטה, נתיב וקוד מצב משורת יומן באמצעות קבוצות עם שם.~12 min
- 8.3חילוץ כתובות URL וכתובות IPזיהוי כתובות http(ים) וכתובות IPv4 בטקסט חופשי.~12 min
- 8.4כתיבת תבניות בטוחות ב-ReDoSזיהוי תבניות קטסטרופליות (`(a+)+b`), שחזר אותן, השתמש בכימות דמויות אטומיות.~14 min