در پایتون، 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)
الگو | توضیح | مثال |
---|---|---|
. | هر کاراکتر بجز newline | a.b → "acb", "a1b" |
\d | عدد 0-9 | \d+ → تمام اعداد |
\D | غیر عدد | |
\w | حرف، عدد یا underscore | |
\W | غیر حرف و عدد | |
\s | فاصله، tab، newline | |
\S | غیر فاصله | |
^ | ابتدای رشته | ^Hello |
$ | انتهای رشته | World$ |
* | 0 یا بیشتر | a* |
+ | 1 یا بیشتر | a+ |
? | 0 یا 1 | a? |
{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) |
🔹 تمرینهای پیشنهادی
-
رشتهای شامل شماره موبایل بساز و با RegEx بررسی کن که آیا معتبر است یا نه.
-
تمام ایمیلهای موجود در یک متن را با
()findall
استخراج کن. -
همه اعداد در یک متن را با
sub()
به علامت#
تبدیل کن. -
متنی با کاراکترهای جداکننده مختلف را با
()split
به لیست تبدیل کن.
✅ خلاصه
-
ماژول
re
ابزار کار با الگوهای متنی است. -
توابع اصلی:
match()
,search()
,findall()
,sub()
,()split
. -
الگوها (Regex Patterns) امکان جستجو، بررسی و جایگزینی پیشرفته را فراهم میکنند.
-
کاربردها شامل: اعتبارسنجی، پردازش متن و استخراج دادهها است.