Regular Expressions (RegEx) یکی از ابزارهای قدرتمند در پردازش متن است که امکان تطبیق، جستجو، و تغییر الگوهای متنی را فراهم میکند. در این مقاله، با مفهوم Regular Expressions، کاربردهای آن و نحوه استفاده از Regular Expressions در پردازش متن آشنا میشویم.
سرفصل های مقاله
Regular Expressions چیست؟
Regular Expressions، یا به اختصار RegEx، مجموعهای از کاراکترها و نمادها است که برای تعریف یک الگوی جستجو در متن استفاده میشود. این ابزار در بسیاری از زبانهای برنامهنویسی مانند پایتون، جاوا، جاوااسکریپت، و PHP کاربرد دارد.
کاربردهای اصلی RegEx
- جستجوی الگوهای خاص: مانند یافتن ایمیلها، شماره تلفنها، یا آدرسهای وب.
- تغییر متن: جایگزینی مقادیر خاص یا حذف آنها.
- تجزیه و تحلیل دادهها: استخراج اطلاعات ساختاریافته از دادههای غیرساختاریافته.
- اعتبارسنجی ورودیها: بررسی صحت دادههایی مثل ایمیل، رمز عبور، یا کدهای پستی.
نمادهای اصلی در Regular Expressions
1. کاراکترهای عمومی
.
: هر کاراکتر به جز خط جدید.\d
: هر رقم (0-9).\w
: هر کاراکتر حرفی (a-z، A-Z، 0-9 و _).\s
: هر فاصله یا کاراکتر سفید.
2. تکرار
*
: صفر یا بیشتر از یک تطابق.+
: یک یا بیشتر از یک تطابق.?
: صفر یا یک تطابق.{n}
: دقیقاً n تطابق.{n,m}
: بین n تا m تطابق.
3. نمادهای موقعیتی
^
: شروع رشته.$
: انتهای رشته.
4. گروهبندی و انتخاب
( )
: گروهبندی.|
: یا (OR).
آموزش مقدماتی پایتون (رایگان)
مثالهایی از استفاده Regular Expressions
1. جستجوی ایمیلها
الگوی ساده برای یافتن ایمیل:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
2. استخراج شماره تلفن
الگوی ساده برای شمارههای دهرقمی:
\d{3}-\d{3}-\d{4}
3. جستجوی کلمات خاص
یافتن کلماتی که با حرف “A” شروع میشوند:
\bA\w*
استفاده از RegEx در زبانهای برنامهنویسی
1. پایتون
پایتون یکی از محبوبترین زبانها برای کار با Regular Expressions است. ماژول re
امکانات گستردهای در این زمینه ارائه میدهد.
نمونه کد:
import re
text = “My email is example@example.com”
pattern = r”[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}”
match = re.search(pattern, text)
if match:
print(“Found:”, match.group())
2. جاوا اسکریپت
در جاوااسکریپت از شیء RegExp
یا توابع رشتهای مثل match
و replace
استفاده میشود.
نمونه کد:
let text = "My email is example@example.com";
let pattern = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/;
let match = text.match(pattern);
if (match) {console.log(“Found:”, match[0]);
}
مزایا و معایب استفاده از Regular Expressions
مزایا:
- انعطافپذیری و قدرت بالا.
- پشتیبانی در اکثر زبانهای برنامهنویسی.
- صرفهجویی در زمان برای پردازش الگوهای پیچیده.
معایب:
- پیچیدگی و دشواری در یادگیری.
- احتمال کاهش خوانایی کد.
- هزینه پردازشی بالا در الگوهای پیچیده.
نتیجه گیری
Regular Expressions ابزاری بسیار قدرتمند برای پردازش و مدیریت متن است. با یادگیری و استفاده صحیح از این ابزار، میتوانید فرآیندهای پردازش داده را بهینه کرده و کدهای مؤثرتری بنویسید. پیشنهاد میشود برای تسلط بیشتر، تمرینهای عملی با دادههای واقعی انجام دهید و از ابزارهای آنلاین مانند regex101.com برای آزمایش الگوها استفاده کنید.