عبارات منظم (RegEx) در پایتون

ماژول re، الگوها، match، search، findall، sub و کاربردهای عبارات منظم

عبارت منظم چیست؟

عبارت منظم (Regular Expression یا RegEx) زبانی برای جستجو و دستکاری متن بر اساس الگو است.

ماژول re

import re

توابع اصلی

تابعتوضیح
re.match()تطبیق از ابتدای رشته
re.search()جستجو در کل رشته
re.findall()پیدا کردن همه تطابق‌ها
re.sub()جایگزینی
re.split()تقسیم با الگو

match — تطبیق از ابتدا

import re

result = re.match(r"سلام", "سلام دنیا")
print(result)  # <Match object>
print(result.group())  # سلام

search — جستجو در کل

result = re.search(r"پایتون", "من پایتون یاد می‌گیرم")
print(result.group())  # پایتون

findall — همه تطابق‌ها

# پیدا کردن همه اعداد
text = "من ۲۵ سال دارم و ۳ کتاب خوانده‌ام"
numbers = re.findall(r"\d+", text)
print(numbers)  # ['۲۵', '۳']

کاراکترهای خاص

کاراکترمعنی
.هر کاراکتر
\dعدد
\Dغیر عدد
\wحرف یا عدد
\sفاصله
^ابتدای رشته
$انتهای رشته
*۰ یا بیشتر
+۱ یا بیشتر
?۰ یا ۱

sub — جایگزینی

# حذف اعداد
text = "رمز 1234 است"
clean = re.sub(r"\d", "*", text)
print(clean)  # رمز **** است

گروه‌بندی

# استخراج بخش‌ها
pattern = r"(\d{4})-(\d{2})-(\d{2})"
text = "تاریخ: 2025-01-15"
match = re.search(pattern, text)
if match:
    year, month, day = match.groups()
    print(f"سال: {year}, ماه: {month}, روز: {day}")

اعتبارسنجی ایمیل

def is_valid_email(email):
    pattern = r"^[\w\.-]+@[\w\.-]+\.\w+$"
    return bool(re.match(pattern, email))

print(is_valid_email("user@example.com"))  # True
print(is_valid_email("invalid"))           # False

خلاصه

RegEx برای جستجو، اعتبارسنجی و دستکاری متن قدرتمند است.

این مبحث بخشی از دوره آموزش کامل پایتون است.

ابزارهای مرتبط