Menu
Coddy logo textTech

בדיקות לאחור

שיעור 21 מתוך 28 בקורס ביטויים רגולריים ב-Python של Coddy.

מבט לאחור הם assertions שמאפשרים להתאים קבוצת תווים רק אם לפניה מופיעה תבנית מסוימת (מבט לאחור חיובי) או אם לא מופיעה לפניה תבנית מסוימת (מבט לאחור שלילי). כמו מבטים קדימה, מבטים לאחור אינם צורכים תווים במחרוזת.

  • מבט לאחור חיובי <strong>(?<=...)</strong>: מתאים קבוצת תווים רק אם לפניה מופיעה תבנית מסוימת.
  • מבט לאחור שלילי <strong>(?<!...)</strong>: מתאים קבוצת תווים רק אם לא מופיעה לפניה תבנית מסוימת.
import re

text = "1foo 2foo 3foo foo"
pattern_positive = r"(?<=\d)foo"
pattern_negative = r"(?<!\d)foo"

matches_positive = re.findall(pattern_positive, text)
matches_negative = re.findall(pattern_negative, text)

print("Matches with positive lookbehind:", matches_positive)  # פלט: ['foo']
print("Matches with negative lookbehind:", matches_negative)  # פלט: ['foo', 'foo', 'foo']

בדוגמה שלמעלה, התבנית (?<=\d)foo מתאימה ל-"foo" רק אם לפניה מופיעה ספרה, ואילו התבנית (?<!\d)foo מתאימה ל-"foo" רק אם לא מופיעה לפניה ספרה.

challenge icon

אתגר

קל

כתוב פונקציה בשם find_words_preceded_by_numbers שמקבלת מחרוזת טקסט כקלט ומחזירה רשימה של מילים שקודם להן מופיע מספר.

נסו בעצמכם

import re

def find_words_preceded_by_numbers(text):
    # כתבו כאן קוד

כל השיעורים ביחידה ביטויים רגולריים ב-Python

תרגלו בעצמכם: קומפיילר Python אונליין