בדיקות קדימה
שיעור 20 מתוך 28 בקורס ביטויים רגולריים ב-Python של Coddy.
מבדקי מבט קדימה הם הצהרות שמאפשרות להתאים קבוצת תווים רק אם אחריה מופיעה (מבדק מבט קדימה חיובי) או לא מופיעה (מבדק מבט קדימה שלילי) תבנית מסוימת. מבדקי מבט קדימה אינם צורכים תווים במחרוזת; הם רק בודקים אם התאמה אפשרית.
- מבדק מבט קדימה חיובי
<strong>(?=...)</strong>: מתאים קבוצת תווים רק אם אחריה מופיעה תבנית מסוימת. - מבדק מבט קדימה שלילי
<strong>(?!...)</strong>: מתאים קבוצת תווים רק אם אחריה לא מופיעה תבנית מסוימת.
import re
text = "foo1 foo2 foo3 foo"
pattern_positive = r"foo(?=\d)"
pattern_negative = r"foo(?!\d)"
matches_positive = re.findall(pattern_positive, text)
matches_negative = re.findall(pattern_negative, text)
print("Matches with positive lookahead:", matches_positive) # פלט: ['foo', 'foo', 'foo']
print("Matches with negative lookahead:", matches_negative) # פלט: ['foo']בדוגמה שלמעלה, התבנית foo(?=\d) מתאימה ל-"foo" רק אם אחריה מופיעה ספרה, ואילו התבנית foo(?!\d) מתאימה ל-"foo" רק אם אחריה לא מופיעה ספרה.
אתגר
קלכתבו פונקציה בשם find_numbers_followed_by_words שמקבלת מחרוזת טקסט כקלט ומחזירה רשימה של מספרים שאחריהם מופיעה מילה.
נסו בעצמכם
import re
def find_numbers_followed_by_words(text):
# כתבו כאן את הקודכל השיעורים ביחידה ביטויים רגולריים ב-Python
1מבוא
מבואתרגלו בעצמכם: קומפיילר Python אונליין