Regular Expressions

در PHP، Regular Expressions (عبارات منظم) ابزار قدرتمندی برای جستجو، بررسی و جایگزینی متن هستند.
PHP دو نوع اصلی برای Regex دارد:

  • POSIX (قدیمی)

  • PCRE (Perl Compatible Regular Expressions) → رایج‌تر و قدرتمندتر، با توابع preg_*

1️⃣ بررسی تطابق با ()preg_match

<?php $pattern = "/php/i"; // i → نادیده گرفتن حروف بزرگ و کوچک $text = "I love PHP programming"; if(preg_match($pattern, $text)){ echo "Pattern found!"; } else { echo "Pattern not found!"; } ?>

📌 خروجی:

Pattern found!

🔹 ()preg_match فقط اولین تطابق را پیدا می‌کند.

2️⃣ جستجوی همه تطابق‌ها با ()preg_match_all

<?php $pattern = "/\d+/"; // تمام اعداد $text = "I have 2 apples and 5 oranges."; preg_match_all($pattern, $text, $matches); print_r($matches[0]); ?>

📌 خروجی:

Array ( [0] => 2 [1] => 5 )

3️⃣ جایگزینی متن با ()preg_replace

<?php $pattern = "/badword/i"; $replacement = "***"; $text = "This is a badword in the sentence."; $new_text = preg_replace($pattern, $replacement, $text); echo $new_text; ?>

📌 خروجی:

This is a *** in the sentence.

4️⃣ تقسیم متن با ()preg_split

<?php $text = "apple,banana;orange|mango"; $pattern = "/[;,\|]/"; // جداکننده: ؛ , | $result = preg_split($pattern, $text); print_r($result); ?>

📌 خروجی:

Array ( [0] => apple [1] => banana [2] => orange [3] => mango )

5️⃣ مثال‌های پرکاربرد

هدفالگو (Pattern)
فقط حروف/^[a-zA-Z]+$/
فقط اعداد/^\d+$/
ایمیل ساده/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/
شماره موبایل/^\+?\d{10,14}$/

📌 جمع‌بندی

  • Regex در PHP با توابع preg_match(), preg_match_all(), preg_replace(), preg_split() انجام می‌شود.

  • کاربردها:

    • بررسی صحت داده‌ها

    • جستجو و جایگزینی متن

    • استخراج داده‌ها از رشته‌ها

  • برای داده‌های پیچیده و پردازش متن، Regex ابزار بسیار قدرتمندی است.