دوال preg
PHP يستخدم تعابير PCRE النمطية عبر دوال preg_. النمط يوضع بين فاصلين
(غالبًا /):
<?php
var_dump(preg_match("/php/i", "أتعلّم PHP")); // 1 (وُجد، i = تجاهل الحالة)
?>
preg_match تُرجع 1 عند المطابقة و0 عند عدمها.
استخراج المطابقات
<?php
$text = "السنة 2026";
preg_match("/\d+/", $text, $matches);
echo $matches[0]; // 2026
?>
كل المطابقات
<?php
preg_match_all("/\d+/", "3 تفاحات و5 موزات", $matches);
print_r($matches[0]); // [3, 5]
?>
الاستبدال
<?php
echo preg_replace("/\d+/", "#", "الهاتف 0791234567");
// الهاتف #
?>
رموز الأنماط الشائعة
| الرمز | يطابق |
|---|---|
\d | رقم |
\w | حرف أو رقم |
\s | مسافة |
+ | واحد أو أكثر |
* | صفر أو أكثر |
^ | بداية النص |
$ | نهاية النص |
مثال عملي: التحقّق من بريد إلكتروني
<?php
function isValidEmail(string $email): bool {
return preg_match("/^[\w.]+@[\w]+\.[\w]+$/", $email) === 1;
}
var_dump(isValidEmail("ali@mail.com")); // true
var_dump(isValidEmail("ali@mail")); // false
?>
💡 للبريد والروابط، PHP يوفّر بديلًا أبسط وأدقّ:
filter_var($email, FILTER_VALIDATE_EMAIL)— سنراه في درس المرشّحات.
أخطاء شائعة
- نسيان الفاصلين المحيطين بالنمط (
/.../). - نسيان تهريب الرموز الخاصّة (مثل
.التي تطابق أي محرف).
🎯 التالي: معالجة النماذج والتحقّق منها.