php : التعابير العادية


التعابير العادية هي أسلوب لوصف جزء من النص وصفا دقيقا ، لغاية البحث عنه داخل نص آخر و إجراء العمليات عليه .

التعابير العادية = Regular Expression أو Regex باختصار

تُستعمل التعابير العادية في جل لغات البرمجة . لأغراض عدّة من بينها :

  • البحث عن جزء مُعيّن من النص داخل نص آخر
  • استبدال جزء مُعيّن من النص ، بنص آخر
  • تقطيع جزء من النص إلى أجزاء عدّة

عندما نتحدّث عن وصف للنص . فنحن نقصد بذلك نمط تسلسل مُكوّناته من حروف و رموز . باتباع بعض القواعد البسيطة ، يمكننا إنشاء من أبسط أنماط البحث إلى أعقدها
مثلا على موقعكم ، تسمحون للأعضاء بإضافة المواضيع و التعاليق . لكنكم لا تسمحون لمحتوى التعليق أن يضم عناوين البريد الإلكتروني . و ذلك لحماية خصوصية المستخدمين .
كيف ستتمكون من معرفة أن النص يحتوي أو لا يحتوي على هذه العناوين ؟
باستعمال التعابير العادية ، سنقوم بإنشاء نمط يصف تسلسل مُكونات البريد الإلكتروني :
نحن نعرف أن البريد الإلكتروني هو مثلا على هذا الشكل :
aaa.bbb@ccc.com
ـ يبدأ بإسم المستخدم و نسبه و يمكن أن يضم حروفا و أرقاما و رموزا .
ـ ثم يليه علامة @
ـ ثم إسم المستضيف ، مثلا : hotmail أو gmail ...إلخ
ـ ثم أخيراً يأتي إسم النطاق ، مثلا : ".fr" أو ".com" أو ".info" ...
قمنا بوصف مُكوّنات البريد الإلكتروني بلغتنا . لترجمة هذا الوصف إلى لغة التعابير العادية. ستعطينا شيئا شبيها بهذا :

#^[_a-z0-9-]+@[a-z0-9._-]{2,}\.[a-z]{2,}$#

هذا مثال بسيط ، سنتعرف لاحقا عن طريقة التأكد من صحة البريد الإلكتروني

هذه الشيفرة الصغيرة ، تلخص تماما وصفنا السابق بل تتضمن أوصافا إضافية . هذا الوصف ، يُسمّى "نمط" في التعابير العادية .
بعدما قمنا بوصف دقيق لطريقة تسلسل مُكوّنات العناوين الإلكترونية . نترك العنان للغة php للبحث في النص الذي أرسله الزائر عن كل ما يشبه هذا النمط ، سيعتبره أنه بريد إلكتروني .
في مثال آخر يمكنكم التأكد أيضا من صحة البريد الإلكتروني الذي أدخله العضو . قبل تخزينه في قاعدة البيانات . في حالة ملأ استمارة تسجيل الأعضاء على موقعكم مثلا .

شكرا جزيلا للتعابير العادية ، بنمط صغير استطعنا التأكد من كل هذا ، قد تبدو لكم الشيفرة غريبة و معقّدة . ليست كذلك ، فهي خوارزمية ، سنتعرف على معنى و وظيفة كل الحروف و الرّموز . و طريقة استعمالها في أمثلة حية و عملية . سننطلق من أبسط الخوارزميات ، بعدها سيصبح من السهل عليكم إنشاء أنماط مُعقّدة . و لها وظائف جد هامة على موقعكم . مثل البحث عن عناوين البريد الإلكتروني أو التأكد من صلاحية و صلابة كلمة المرور و صحة أرقام الهواتف و إعادة كتابة الرّوابط ، أو إنشاء لغة خاصّة بموقعكم كالببكود مثلا ... إلخ
دعونا نكتشف كل هذا ، خلال هذا الجزء .



 بوبكر حسني
averroes