ביטויים רגילים של 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, אתה יכול לחפש, להתאים ולהחליף טקסט על סמך תבניות מורכבות. על ידי הבנת התחביר הבסיסי והתווים המיוחדים, תוכל למנף ביטויים רגולריים כדי לטפל במגוון רחב של משימות עיבוד טקסט ביעילות.