Regular Expressions (RegEx) یکی از ابزارهای قدرتمند در پردازش متن است که امکان تطبیق، جستجو، و تغییر الگوهای متنی را فراهم می‌کند. در این مقاله، با مفهوم Regular Expressions، کاربردهای آن و نحوه استفاده از Regular Expressions در پردازش متن آشنا می‌شویم.

Regular Expressions چیست؟

Regular Expressions، یا به اختصار RegEx، مجموعه‌ای از کاراکترها و نمادها است که برای تعریف یک الگوی جستجو در متن استفاده می‌شود. این ابزار در بسیاری از زبان‌های برنامه‌نویسی مانند پایتون، جاوا، جاوااسکریپت، و PHP کاربرد دارد.

کاربردهای اصلی RegEx

  1. جستجوی الگوهای خاص: مانند یافتن ایمیل‌ها، شماره تلفن‌ها، یا آدرس‌های وب.
  2. تغییر متن: جایگزینی مقادیر خاص یا حذف آن‌ها.
  3. تجزیه و تحلیل داده‌ها: استخراج اطلاعات ساختاریافته از داده‌های غیرساختاریافته.
  4. اعتبارسنجی ورودی‌ها: بررسی صحت داده‌هایی مثل ایمیل، رمز عبور، یا کدهای پستی.

نمادهای اصلی در 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

مزایا:

  1. انعطاف‌پذیری و قدرت بالا.
  2. پشتیبانی در اکثر زبان‌های برنامه‌نویسی.
  3. صرفه‌جویی در زمان برای پردازش الگوهای پیچیده.

معایب:

  1. پیچیدگی و دشواری در یادگیری.
  2. احتمال کاهش خوانایی کد.
  3. هزینه پردازشی بالا در الگوهای پیچیده.

نتیجه‌ گیری

Regular Expressions ابزاری بسیار قدرتمند برای پردازش و مدیریت متن است. با یادگیری و استفاده صحیح از این ابزار، می‌توانید فرآیندهای پردازش داده را بهینه کرده و کدهای مؤثرتری بنویسید. پیشنهاد می‌شود برای تسلط بیشتر، تمرین‌های عملی با داده‌های واقعی انجام دهید و از ابزارهای آنلاین مانند regex101.com برای آزمایش الگوها استفاده کنید.