ביטויים רגילים של Python בקלות
ביטויים רגולריים (רגקס) הם כלים רבי עוצמה המשמשים להתאמה ומניפולציה של מחרוזות על סמך דפוסים. ב-Python, מודול re
מספק תמיכה בביטויים רגולריים, ומאפשר לך לבצע פעולות מחרוזות מורכבות ביעילות. מאמר זה יציג בפניכם את היסודות של ביטויים רגולריים ויראה לכם כיצד להשתמש בהם ביעילות ב-Python.
תחילת העבודה עם מודול re
כדי להשתמש בביטויים רגולריים ב- Python, עליך לייבא את המודול re
. מודול זה מספק מספר פונקציות לעבודה עם דפוסי ביטויים רגילים:
re.match()
- בודק התאמה רק בתחילת המחרוזת.re.search()
- מחפש התאמה במחרוזת כולה.re.findall()
- מוצא את כל ההתאמות במחרוזת ומחזיר אותן כרשימה.re.sub()
- מחליף התאמות במחרוזת בהחלפה שצוינה.
התאמת תבניות בסיסית
ביטויים רגולריים משתמשים בתווים מיוחדים כדי להגדיר דפוסי חיפוש. הנה כמה דפוסים בסיסיים:
.
- מתאים לכל תו בודד מלבד שורה חדשה.\d
- מתאים לכל ספרה (שווה ערך ל-[0-9]
).\w
- מתאים לכל תו אלפאנומרי (שווה ערך ל-[a-zA-Z0-9_]
).\s
- מתאים לכל תו של רווח לבן.^
- מתאים לתחילת המחרוזת.$
- מתאים לקצה המחרוזת.
דוגמאות
הנה כמה דוגמאות המדגימות התאמת דפוסים בסיסית:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
שימוש בביטויים רגולריים עם קבוצות
קבוצות משמשות ללכידת חלקים מהטקסט המותאם. הם מוגדרים באמצעות סוגריים. לדוגמה, כדי לחלץ חלקים ספציפיים של דפוס, אתה יכול להשתמש בקבוצות:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
שימוש בתווים מיוחדים
ביטויים רגולריים כוללים מספר תווים מיוחדים להתאמת דפוסים מורכבים יותר:
*
- מתאים לאפס מופעים או יותר של האלמנט הקודם.+
- מתאים למופע אחד או יותר של האלמנט הקודם.?
- מתאים למופע 0 או 1 של האלמנט הקודם.{n}
- מתאים בדיוק למופעים שלn
של האלמנט הקודם.|
- מתאים לתבנית שלפניה או לתבנית שאחריה.
דוגמאות
הנה כמה דוגמאות לשימוש בתווים מיוחדים:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
החלפת טקסט בביטויים רגולריים
הפונקציה re.sub()
משמשת להחלפת חלקים מהמחרוזת התואמים לתבנית:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
מַסְקָנָה
ביטויים רגולריים הם כלי רב עוצמה להתאמת דפוסים ולמניפולציה של טקסט ב- Python. עם מודול re
, אתה יכול לחפש, להתאים ולהחליף טקסט על סמך תבניות מורכבות. על ידי הבנת התחביר הבסיסי והתווים המיוחדים, תוכל למנף ביטויים רגולריים כדי לטפל במגוון רחב של משימות עיבוד טקסט ביעילות.