
روز ۳۹ آموزش پایتون: Regular Expressions (re)
در دنیای واقعی برنامه نویسی، اغلب با دادههایی روبرو میشویم که ساختار مشخصی ندارند یا باید آنها را پردازش کنیم تا به اطلاعات مورد نیاز برسیم. برای مثال بررسی ایمیلها، شمارههای تماس، کدهای پستی یا الگوهای خاص در متن، بدون ابزار مناسب بسیار پیچیده و زمانبر است. ماژول re در پایتون ابزاری قدرتمند برای کار با Regular Expressions یا همان الگوهای منظم ارائه میدهد. این ماژول اجازه میدهد الگوهایی برای جستجو، بررسی، جایگزینی و استخراج دادهها تعریف کنیم و تقریباً هر نوع پردازش متنی پیچیدهای را به سادهترین شکل ممکن انجام دهیم. یادگیری re نه تنها مهارت برنامهنویسی شما را افزایش میدهد، بلکه در پروژههای واقعی مانند اعتبارسنجی فرمها، پاکسازی دادهها، استخراج اطلاعات و ساخت گزارشهای حرفهای ضروری است.
مفاهیم پایهای Regular Expressions
الگوهای منظم از ترکیبی از کاراکترها و نمادها تشکیل میشوند که به برنامه میگویند چه نوع رشتهای را جستجو کند. برای مثال \d نشاندهنده یک رقم است، \w یک حرف یا عدد و . هر کاراکتری را شامل میشود. با استفاده از این نمادها میتوان الگوهای بسیار پیچیده ساخت و با توابع مختلف ماژول re آنها را روی متن اعمال کرد. ماژول re همچنین توابعی مانند search, match, findall, sub و split ارائه میدهد که هر کدام کاربرد خاص خود را دارند و یادگیری آنها باعث میشود پردازش متن بسیار ساده شود.
نمونه کد جستجوی ایمیل:
import re
text = "Contact us at support@example.com or sales@example.org"
pattern = r'\b[\w.-]+@[\w.-]+\.\w{2,4}\b'
emails = re.findall(pattern, text)
print("ایمیلهای پیدا شده:", emails)در این مثال، تمام ایمیلهای موجود در متن با استفاده از الگوی تعریف شده استخراج شدهاند. این روش بسیار سریعتر و دقیقتر از جستجوی دستی رشتهها است و در پروژههای واقعی کاربرد فراوان دارد.
اعتبارسنجی ورودیها
یکی از کاربردهای اصلی Regular Expressions در اعتبارسنجی ورودیها است. برای مثال بررسی صحت شماره تلفن، کد پستی یا رمز عبور، بدون re تقریباً غیرممکن و پرخطا است. با تعریف الگوهای مناسب میتوان ورودی کاربر را به سرعت بررسی کرد و در صورت عدم تطابق پیام مناسب به کاربر نمایش داد. این روش باعث افزایش امنیت و دقت برنامه میشود و از بروز خطاهای انسانی جلوگیری میکند.
نمونه کد بررسی شماره تلفن:
import re
phone = "09123456789"
pattern = r'^09\d{9}$'
if re.match(pattern, phone):
print("شماره تلفن معتبر است")
else:
print("شماره تلفن نامعتبر است")در این مثال، شماره تلفن بررسی میشود که با 09 شروع شود و دقیقاً ۱۱ رقم داشته باشد. اگر الگو رعایت نشود، پیام خطا داده میشود. این تکنیک در فرمهای ثبتنام و ورود سایتها بسیار پرکاربرد است.
جایگزینی و پاکسازی متن
ماژول re علاوه بر جستجو، امکان جایگزینی و پاکسازی متن را نیز فراهم میکند. برای مثال حذف کاراکترهای اضافی، تغییر فرمت دادهها یا اصلاح متن با الگوهای مشخص بسیار ساده میشود. این قابلیت در پردازش دادههای خام، فایلهای لاگ یا فایلهای متنی حجیم اهمیت زیادی دارد.
نمونه کد جایگزینی:
import re
text = "Price: $100, Tax: $20"
cleaned = re.sub(r'\$\d+', 'XX', text)
print("متن پاکسازی شده:", cleaned)در این مثال، تمام مقادیر پولی با XX جایگزین شدهاند. این روش باعث میشود اطلاعات حساس یا ناخواسته به سرعت و با دقت از متن حذف شوند.
جمعبندی و کاربردها
در روز ۳۹ یاد گرفتیم که Regular Expressions یکی از ابزارهای قدرتمند و کاربردی پایتون برای پردازش متن است. از جستجو و استخراج دادهها، اعتبارسنجی ورودیها، تا جایگزینی و پاکسازی متن، re امکان انجام کارهای پیچیده را با چند خط کد فراهم میکند. توصیه میشود تمرین عملی انجام دهید و برای مثال یک برنامه بسازید که ایمیلها و شماره تلفنها را از متن استخراج کند، دادهها را پاکسازی کند و ورودیهای کاربران را اعتبارسنجی نماید تا مهارت شما تثبیت شود. مسلط شدن به Regular Expressions، پروژههای شما را حرفهایتر، دقیقتر و آماده دنیای واقعی میکند.
