توابع preg_matchpreg_replace

توابع preg_match و preg_replace در PHP

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

تابع preg_match

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

پارامتر توضیحات
الگو عبارت منظم برای جستجو
رشته ورودی متنی که باید در آن جستجو شود
matches (اختیاری) آرایه‌ای برای ذخیره نتایج تطابق

مثال کاربردی:

$text = "آموزش PHP در سال 2023";
if (preg_match("/\d+/", $text, $matches)) {
  echo "عدد یافت شد: " . $matches[0];
}

تابع preg_replace

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

پارامتر توضیحات
الگو عبارت منظم برای جستجو
جایگزین متن یا تابع جایگزین
رشته ورودی متنی که باید پردازش شود

مثال عملی:

$text = "تلفن: 021-1234567";
$result = preg_replace("/\d+/", "***", $text);
echo $result; // خروجی: تلفن: ***-***

تفاوت‌های کلیدی

  • preg_match فقط برای یافتن الگوها استفاده می‌شود
  • preg_replace هم یافتن و هم جایگزینی را انجام می‌دهد
  • preg_match مقدار بازگشتی 0 یا 1 دارد (موفق/ناموفق)
  • preg_replace رشته پردازش شده را برمی‌گرداند

برای یادگیری عمیق‌تر درباره عبارات منظم در PHP، می‌توانید اینجا را تماشا کنید. این منبع آموزشی به شما کمک می‌کند تا با ساختارهای پیچیده‌تر regex آشنا شوید.

نکات مهم در استفاده از توابع

  1. همیشه الگوهای regex را بین delimiter قرار دهید (معمولاً از / استفاده می‌شود)
  2. از modifierهای مناسب مانند i برای حساس نبودن به حروف بزرگ و کوچک استفاده کنید
  3. برای کارایی بهتر، الگوهای پیچیده را تا حد امکان ساده کنید
  4. در صورت امکان از توابع ساده‌تر رشته‌ای مانند str_replace استفاده کنید

توجه: عبارات منظم می‌توانند بسیار پیچیده شوند. همیشه قبل از استفاده در محیط تولید، آن‌ها را با داده‌های تست مختلف آزمایش کنید تا از عملکرد صحیح آن‌ها مطمئن شوید.