عبارات منظم (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 برای جستجو، اعتبارسنجی و دستکاری متن قدرتمند است.
این مبحث بخشی از دوره آموزش کامل پایتون است.