מדריך למתחילים לביטויים רגולריים

ביטויים רגולריים, המקוצרים לרוב כ-regex או regexp, הם רצפים של תווים שמגדירים דפוס חיפוש. הם משמשים בדרך כלל להתאמת מחרוזות, החלפת מחרוזות משנה וחילוץ מידע מטקסט.

למה ללמוד ביטויים רגולריים?

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

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

רכיבים בסיסיים של ביטויים רגולריים

Regex מורכב מדמויות מילוליות ומטא-תווים. להלן כמה מהמרכיבים הבסיסיים:

  • תווים מילוליים: תווים התואמים את עצמם. לדוגמה, a מתאים ל-"a".
  • תווים מטא: תווים מיוחדים עם משמעויות ספציפיות, כמו ., *, + ו-?.

מטא-תווים נפוצים ומשמעויותיהם

הבנת מטא-תווים היא המפתח לשליטה ב-regex. להלן כמה מהשימושים הנפוצים ביותר:

  • . - מתאים לכל תו בודד מלבד שורה חדשה.
  • * - מתאים ל-0 חזרות או יותר של האלמנט הקודם.
  • + - מתאים לחזרה אחת או יותר של האלמנט הקודם.
  • ? - תואם חזרה של 0 או 1 של האלמנט הקודם.
  • [] - מתאים לכל אחד מהתווים בתוך הסוגריים.
  • {} - מציין מספר מסוים של מופעים של האלמנט הקודם.
  • () - מקבץ מספר אסימונים יחד ויוצר קבוצות לכידה.
  • | - פועל כמפעיל OR.

דפוסי ביטוי רגולריים בסיסיים עם דוגמאות

הבה נסתכל על כמה דפוסי ביטויים רגילים בסיסיים וכיצד הם פועלים:

cat

מתאים למחרוזת המדויקת "cat".

.at

מתאים לכל מחרוזת המכילה תו בודד ואחריו "at", כגון "cat", "bat", "hat".

\d{3}

מתאים בדיוק לשלוש ספרות, כגון "123", "456", "789".

[a-z]

מתאים לכל אות קטנה מ-"a" עד "z".

(dog|cat)

מתאים ל-"dog" או "cat".

שימוש ב-Regex בשפות תכנות

ביטויים רגולריים זוכים לתמיכה נרחבת בשפות תכנות שונות. להלן דוגמאות לשימוש ב-Regex ב-Python וב-JavaScript:

דוגמה לפייתון

import re

# Search for 'dog' in a string
pattern = r'dog'
text = 'The dog barked loudly.'
match = re.search(pattern, text)

if match:
    print('Match found:', match.group())
else:
    print('No match found')

דוגמה ל-JavaScript

// Search for 'dog' in a string
const pattern = /dog/;
const text = 'The dog barked loudly.';
const match = text.match(pattern);

if (match) {
    console.log('Match found:', match[0]);
} else {
    console.log('No match found');
}

סיכום

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