לכידה
שיעור 17 מתוך 28 בקורס ביטויים רגולריים ב-Python של Coddy.
קבוצות לכידה לא רק מקבצות חלקים מתבנית, אלא גם לוכדות את הטקסט שהתאים לה. אפשר להפנות לקבוצות שנלכדו בהמשך התבנית או להשתמש בהן במחרוזת ההחלפה בתהליך ההחלפה.
import re
text = "abab abab abab"
pattern = r"(ab)\1"
matches = re.findall(pattern, text)
print(matches) # פלט: ['ab', 'ab']בדוגמה שלמעלה, התבנית (ab)\1 לוכדת את הקבוצה "ab" ואז מחפשת את אותה קבוצה מיד אחריה. \1 היא הפניה לאחור לקבוצה הלכודה הראשונה.
דוגמה נוספת:
import re
text = "My email is example@example.com and my backup is backup@example.com."
pattern = r"(\w+)@example\.com"
matches = re.findall(pattern, text)
print(matches) # פלט: ['example', 'backup']בדוגמה שלמעלה, התבנית (\w+)@example\.com לוכדת את החלק של כתובת האימייל שלפני @example.com.
אתגר
קלכתבו פונקציה בשם find_repeated_patterns שמקבלת מחרוזת טקסט כקלט ומחזירה רשימה של דפוסים חוזרים בני שני תווים.
נסו בעצמכם
import re
def find_repeated_patterns(text):
# כתבו כאן קודכל השיעורים ביחידה ביטויים רגולריים ב-Python
1מבוא
מבואתרגלו בעצמכם: קומפיילר Python אונליין