Python RegEx

در پایتون، RegEx (Regular Expressions) برای جستجو، بررسی و جایگزینی الگوهای متنی استفاده می‌شود.
ماژول re امکانات RegEx را در پایتون فراهم می‌کند.

🔹 وارد کردن ماژول

import re

🔹 توابع اصلی ماژول re

1️⃣ جستجو با ()match

بررسی می‌کند که آیا الگو از ابتدای رشته پیدا می‌شود یا نه:

import re pattern = r"Hello" text = "Hello World" result = re.match(pattern, text) if result: print("مطابقت پیدا شد!") else: print("مطابقت پیدا نشد.")

2️⃣ جستجو در کل رشته با ()search

الگو را در هر جای رشته جستجو می‌کند:

result = re.search(r"World", "Hello World") if result: print("پیدا شد:", result.group())

3️⃣ پیدا کردن همهٔ موارد با ()findall

تمام مقادیر مطابق الگو را در یک لیست برمی‌گرداند:

text = "My numbers: 5, 10, 15" numbers = re.findall(r"\d+", text) # \d+ → تمام اعداد print(numbers) # ['5', '10', '15']

4️⃣ جایگزینی با ()sub

متن مطابق الگو را با مقدار جدید جایگزین می‌کند:

text = "Hello 123 World 456" new_text = re.sub(r"\d+", "#", text) print(new_text) # Hello # World #

5️⃣ تقسیم رشته با ()split

رشته را بر اساس الگو تقسیم می‌کند:

text = "apple,banana;cherry orange" fruits = re.split(r"[,; ]", text) print(fruits) # ['apple', 'banana', 'cherry', 'orange']

🔹 الگوهای پرکاربرد (Regex Patterns)

الگوتوضیحمثال
.هر کاراکتر بجز newlinea.b → "acb", "a1b"
\dعدد 0-9\d+ → تمام اعداد
\Dغیر عدد
\wحرف، عدد یا underscore
\Wغیر حرف و عدد
\sفاصله، tab، newline
\Sغیر فاصله
^ابتدای رشته^Hello
$انتهای رشتهWorld$
*0 یا بیشترa*
+1 یا بیشترa+
?0 یا 1a?
{n}دقیقاً n بارa{3}
{n,}n یا بیشترa{2,}
{n,m}بین n تا m بارa{1,3}
[abc]یکی از حروف a,b,c
[^abc]همه جز a,b,c
( )گروه‌بندی(ab)+
``یا (OR)

🔹 تمرین‌های پیشنهادی

  1. رشته‌ای شامل شماره موبایل بساز و با RegEx بررسی کن که آیا معتبر است یا نه.

  2. تمام ایمیل‌های موجود در یک متن را با ()findall استخراج کن.

  3. همه اعداد در یک متن را با sub() به علامت # تبدیل کن.

  4. متنی با کاراکترهای جداکننده مختلف را با ()split به لیست تبدیل کن.


✅ خلاصه

  • ماژول re ابزار کار با الگوهای متنی است.

  • توابع اصلی: match(), search(), findall(), sub(), ()split.

  • الگوها (Regex Patterns) امکان جستجو، بررسی و جایگزینی پیشرفته را فراهم می‌کنند.

  • کاربردها شامل: اعتبارسنجی، پردازش متن و استخراج داده‌ها است.