יסודות Regex
תווים בסיסיים
התאמה מדויקת:
נקודה (.) - כל תו:
תווים מיוחדים שצריך escape:
תווים מיוחדים וקבוצות
Character Classes
\d - ספרה (0-9):
\D - לא ספרה:
\w - תו מילה (אות, ספרה, _):
\W - לא תו מילה:
\s - רווח לבן (space, tab, newline):
\S - לא רווח לבן:
טווחים ב-[]
טווח אותיות:
טווח ספרות:
מספר אפשרויות:
שלילה (NOT):
שילוב טווחים:
כמתים (Quantifiers)
כמויות
* - אפס או יותר:
+ - אחד או יותר:
? - אפס או אחד (אופציונלי):
{n} - בדיוק n פעמים:
{n,} - n או יותר:
{n,m} - בין n ל-m:
Greedy vs Lazy
Greedy (ברירת מחדל) - מתאים כמה שיותר:
מתאים: <div>text</div> (הכל!)
Lazy (?) - מתאים כמה שפחות:
מתאים: <div> ו-</div> (בנפרד)
קבוצות (Groups)
Capturing Groups
קבוצה בסיסית ():
OR (|) בתוך קבוצה:
התייחסות חוזרת (Backreference):
Non-capturing group (?:):
עוגנים (Anchors)
התחלה וסוף
^ - התחלת שורה:
$ - סוף שורה:
שורה שלמה:
\b - גבול מילה:
לא מתאים: "category" (cat בתוך מילה)
\B - לא גבול מילה:
לא מתאים: "cat" (מילה שלמה)
Lookahead ו-Lookbehind
Lookahead
Positive Lookahead (?=):
מתאים רק ל-100
Negative Lookahead (?!):
Lookbehind
Positive Lookbehind (?<=):
מתאים רק ל-100
Negative Lookbehind (?<!):
Flags (דגלים)
דגלים נפוצים
i - Case insensitive:
g - Global (כל ההתאמות):
m - Multiline:
s - Dotall:
שילוב דגלים:
דוגמאות נפוצות
אימייל
אימייל בסיסי:
אימייל מתקדם יותר:
טלפון
טלפון ישראלי:
טלפון בינלאומי:
URL
URL בסיסי:
URL מלא:
תאריך ושעה
תאריך (DD/MM/YYYY):
תאריך (YYYY-MM-DD):
שעה (24 שעות):
מספרים
מספר שלם:
מספר עשרוני:
מספר עם פסיקים:
סיסמה
סיסמה חזקה (8+ תווים, אות גדולה, קטנה, ספרה):
HTML/XML
תג HTML:
הסרת תגי HTML:
כתובת IP
IPv4:
IPv4 מדויק (0-255):
תרגילים מעשיים
תרגיל 1: חילוץ שמות
חלץ שמות פרטיים ומשפחה מטקסט:
תרגיל 2: ניקוי רווחים
מצא רווחים מרובים:
תרגיל 3: מספרי כרטיס אשראי
זיהוי מספר כרטיס (16 ספרות):
תרגיל 4: Hashtags
חילוץ hashtags:
תרגיל 5: קוד צבע Hex
קוד צבע HEX:
• התחל פשוט והוסף מורכבות בהדרגה
• בדוק את ה-regex על מקרי קצה
• זכור: Regex לא תמיד הפתרון הטוב ביותר!
CopyCode