021-88881776

آموزش عبارات منظم در پایتون

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

1. آشنایی با عبارات منظم (Regular Expressions)

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

برای استفاده از عبارات منظم، ابتدا باید ماژول re را وارد کنید:

import re

 

تطبیق الگو با استفاده از match

تابع match بررسی می‌کند که آیا یک رشته با الگوی مشخصی در ابتدای متن مطابقت دارد یا خیر.

مثال:

import re

pattern = r"hello"
text = "hello world"
match = re.match(pattern, text)

if match:
    print("Pattern found at the beginning of the text!")
else:
    print("Pattern not found.")

 

خروجی:

Pattern found at the beginning of the text!

 

جستجو در متن با استفاده از search

تابع search به دنبال اولین تطبیق الگو در کل متن می‌گردد.

مثال:

pattern = r"world"
text = "hello world"
result = re.search(pattern, text)

if result:
    print(f"Pattern found at index {result.start()}!")
else:
    print("Pattern not found.")

 

خروجی:

Pattern found at index 6!

 

یافتن تمام تطبیق‌ها با findall

تابع findall تمام تطبیق‌های الگو را در متن برمی‌گرداند.

مثال:

pattern = r"\d+"  # الگوی اعداد
text = "There are 12 apples, 15 oranges, and 7 bananas."
result = re.findall(pattern, text)
print(result)

 

خروجی:

['12', '15', '7']

 

جایگزینی با استفاده از sub

تابع sub برای جایگزینی متن استفاده می‌شود.

مثال:

pattern = r"\d+"
text = "There are 12 apples and 15 oranges."
new_text = re.sub(pattern, "many", text)
print(new_text)

 

خروجی:

There are many apples and many oranges.

 

تقسیم متن با استفاده از split

تابع split متن را براساس الگوی مشخص تقسیم می‌کند.

مثال:

pattern = r",\s*"  # الگوی کاما و فضای خالی
text = "apple, banana, cherry, date"
result = re.split(pattern, text)
print(result)

 

خروجی:

['apple', 'banana', 'cherry', 'date']

 

کار با گروه‌ها

گروه‌بندی به شما امکان می‌دهد بخش‌هایی از الگو را جداگانه استخراج کنید.

مثال:

pattern = r"(\d+)-(\d+)-(\d+)"
text = "2024-12-28"
match = re.search(pattern, text)

if match:
    print(f"Year: {match.group(1)}")
    print(f"Month: {match.group(2)}")
    print(f"Day: {match.group(3)}")

 

خروجی:

Year: 2024
Month: 12
Day: 28

 

پرچم‌های عبارات منظم

پرچم‌ها گزینه‌های اضافی برای کنترل رفتار عبارات منظم هستند.

پرچم توضیح
re.IGNORECASE نادیده گرفتن تفاوت حروف کوچک و بزرگ
re.MULTILINE تطبیق با خطوط متعدد
re.DOTALL شامل کردن خطوط جدید در تطبیق با .

مثال با IGNORECASE:

pattern = r"hello"
text = "Hello world"
result = re.search(pattern, text, re.IGNORECASE)

if result:
    print("Pattern found!")

 

خروجی:

Pattern found!

 

 

به طور کلی می توان گفت:

عبارات منظم ابزاری قدرتمند برای پردازش متن در پایتون هستند. با استفاده از ماژول re، می‌توانید عملیات‌هایی مانند جستجو، تطبیق و جایگزینی را به صورت کارآمد انجام دهید. تسلط بر این ابزار می‌تواند در پروژه‌های مرتبط با پردازش متن و داده بسیار مفید باشد.

 

2. استفاده از ماژول re

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

 

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

برای شروع استفاده از re، کافی است آن را به برنامه خود وارد کنید:

import re

 

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

1. re.match

این تابع بررسی می‌کند که آیا الگوی مشخصی در ابتدای رشته مطابقت دارد یا خیر.

مثال:
import re

pattern = r"hello"
text = "hello world"
match = re.match(pattern, text)

if match:
    print("Pattern found at the start of the text!")
else:
    print("Pattern not found.")

خروجی:

Pattern found at the start of the text!

 

2. re.search

تابع search به دنبال اولین تطبیق الگو در کل متن می‌گردد.

مثال:
pattern = r"world"
text = "hello world"
result = re.search(pattern, text)

if result:
    print(f"Pattern found at index {result.start()}!")
else:
    print("Pattern not found.")

 

خروجی:

Pattern found at index 6!

 

3. re.findall

تابع findall تمام تطبیق‌های یک الگو را در متن پیدا کرده و در قالب لیست بازمی‌گرداند.

مثال:
pattern = r"\d+"  # اعداد را پیدا می‌کند
text = "There are 12 apples, 15 oranges, and 7 bananas."
result = re.findall(pattern, text)
print(result)

 

خروجی:

['12', '15', '7']

 

4. re.sub

تابع sub برای جایگزینی الگوهای متن استفاده می‌شود.

مثال:
pattern = r"\d+"
text = "I have 2 cats and 3 dogs."
new_text = re.sub(pattern, "many", text)
print(new_text)

 

خروجی:

I have many cats and many dogs.

 

5. re.split

تابع split برای تقسیم متن براساس یک الگو استفاده می‌شود.

مثال:
pattern = r",\s*"  # الگوی کاما با فضای اختیاری
text = "apple, banana, cherry, date"
result = re.split(pattern, text)
print(result)

 

خروجی:

['apple', 'banana', 'cherry', 'date']

 

کار با گروه‌ها در عبارات منظم

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

مثال:
pattern = r"(\d+)-(\d+)-(\d+)"
text = "2024-12-28"
match = re.search(pattern, text)

if match:
    print(f"Year: {match.group(1)}")
    print(f"Month: {match.group(2)}")
    print(f"Day: {match.group(3)}")

 

خروجی:

Year: 2024
Month: 12
Day: 28

 

پرچم‌های ماژول re

پرچم‌ها گزینه‌های اضافی برای کنترل رفتار عبارات منظم هستند. برخی از پرچم‌های رایج عبارتند از:

پرچم توضیح
re.IGNORECASE نادیده گرفتن تفاوت حروف کوچک و بزرگ
re.MULTILINE مطابقت با خطوط متعدد
re.DOTALL شامل کردن خطوط جدید در تطبیق با .
مثال:
pattern = r"hello"
text = "Hello world"
result = re.search(pattern, text, re.IGNORECASE)

if result:
    print("Pattern found!")

 

خروجی:

Pattern found!

 

مدیریت خطاها در عبارات منظم

هنگام کار با الگوهای پیچیده، ممکن است خطاهایی رخ دهد. برای مدیریت این موارد از try-except استفاده کنید.

مثال:
try:
    pattern = r"(\d+"
    text = "12345"
    result = re.search(pattern, text)
except re.error as e:
    print(f"Error in regex pattern: {e}")

 

خروجی:

Error in regex pattern: missing ), unterminated subpattern at position 4

 

 

به طور کلی می توان گفت:

ماژول re ابزار قدرتمندی برای کار با متن در پایتون است. با تسلط بر توابع و قابلیت‌های این ماژول، می‌توانید عملیات پردازش متن را به شکلی کارآمد و حرفه‌ای انجام دهید.

آموزش عبارات منظم در پایتون

دیدگاه های شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *