منتديات فبركة ايجى
الدرس العشرون: التعابير القياسيه Ezlb9t10
منتديات فبركة ايجى
الدرس العشرون: التعابير القياسيه Ezlb9t10
منتديات فبركة ايجى
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


مرحبا بك من جديد يا زائر فى منتديات فبركة ايجى
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول

 

 الدرس العشرون: التعابير القياسيه

اذهب الى الأسفل 
كاتب الموضوعرسالة
The Rock
المدير العام™
المدير العام™
The Rock


الدرس العشرون: التعابير القياسيه P60tur5o60jd
المزاج الدرس العشرون: التعابير القياسيه Pi-ca-18
ذكر
SmS الدرس العشرون: التعابير القياسيه F9ues51nlw7q
عدد المساهمات : 1857
تاريخ التسجيل : 06/02/2013

الدرس العشرون: التعابير القياسيه Empty
مُساهمةموضوع: الدرس العشرون: التعابير القياسيه   الدرس العشرون: التعابير القياسيه Icon_minitimeالسبت يونيو 29, 2013 1:28 pm

تدعم لغة PHP نوعان من التعابير القياسيه , وهي POSIX و PERL , الاول يكون مدمج مع اللغه تلقائيا ولكن الاخر يحتاج الى ان تقوم بتنصيبه ,, لا تقلق فعند استخدامك التنصيب العادي للغة سوف يتم وضع الاثنان معا , يعتبر النوع الاول اسهل في التعلم والطبيق من النواع الثاني , ويتم ترجمته وتشغيله اسرع ,, ولكنه ليس امن كالثاني Smile


بسم الله الرحمن الرحيم

نتمنى ان تكون الاستفاده ممتازه من هذه الدروس ولا تترد بطرح اي سؤال على بريدي الشخصي وسوف يسعدني ان اقوم بالمساعده , اذا قمت بأي خطأ او كان هناك خطأ في معلوماتي الرجاء اعلامي بذلك , فلا تنسى انه جل من لا يسهو . ( ان اصبت من الله وان اخطأت فمن نفسي او الشيطان )

متطلبات قبل البدأ :

مراجعة الدرس السابع عشر: برمجة الكائنات

اهداف الدرس:

مقدمه عن التعابير القياسيه ( Regular Expressions )
العثور على النصوص بإستخدام التعابير القياسيه
استبدال النصوص بإستخدام التعابير القياسيه
فصل النصوص بإستخدام التعابير القياسيه

--------------------------------------------------------------------------------

مقدمه عن التعابير القياسيه ( Regular Expressions ) :

تدعم لغة PHP نوعان من التعابير القياسيه , وهي POSIX و PERL , الاول يكون مدمج مع اللغه تلقائيا ولكن الاخر يحتاج الى ان تقوم بتنصيبه ,, لا تقلق فعند استخدامك التنصيب العادي للغة سوف يتم وضع الاثنان معا , يعتبر النوع الاول اسهل في التعلم والطبيق من النواع الثاني , ويتم ترجمته وتشغيله اسرع ,, ولكنه ليس امن كالثاني Smile. جميع ما تعلمناه في الدرس السابق كان عباره عن مقانرة نصوص متطابقه او اجزاء من النصوص ولكن ماذا لو احتجنا الى ان نقوم بشيئ اكثر من ذلك ,, فالتعابير القياسيه هي مبتغانا ,, وسوف نقم بالتعلم عليها والتطبيق عليها.

الاساسيات:

التعابير القياسيه هي طريقة لوضع او شرح نمط معين مكرر في نص , فالعباره ( email ) تساوي في التعابير القياسيه ( mail ) و ( ma ) و ( i ). لكن مع استخدام التعابير القياسيه يمكننا المقارنه بالطرق التاليه ,, يقع الحرف في اول النص , الاخر , الوسط , وغير ذلك من الطرق التي سنتطرق لها

الاحرف والتصانيف:

لنأخذ امثله لكي نفهم الاحرف والتصانيف , لو استخدمنا الحرف ( . ) فهذا يقوم بمطابقة اي حرف اخر غير علامة السطر الجديد ( ) , فلو قلنا نريد ان نقوم بمطابقة .at فسوف يكون النتاج كالتالي , cat و mat و sat . لكن هذه الطريقه سوف تقوم ايضا بفرض ان #at نريده مع المقارنه , لكن هناك حل بأن نقوم بجعل المطلوب فقط احرف بالطريقه التاليه [a-z] ارأيت السهوله ؟ مثلا لو اردنا احرف ( vowel ) في مجموعه , سوف نقوم بالتالي [aeiou] , ويمكن استخدام مدى كما فعلنا قبل قليل [a-z] او اكثر من مدى [a-zA-Z] وهذا معناه اي حرف من a الى z سواء كان في حالته الصغرى او الكبرى ( في اللغه الانجليزيه ) , ويمكن ايضا ان نخرج مدى من المقارنه كالتالي [^a-z] فهذا يقوم بمقارنة اي حرف غير a الى z فالعلامه ^ اذا وضعت بين الاقواس [] معناها ( not ) اي ( ليس ) , وضحت الفكره الان ؟ بجانب المدى الذي نقوم بتحديده , او نريد مدى معين في بالنا , هناك مدى معرف سابقا في لغة PHP , لاحظ الجدول التالي:

الدرس العشرون: التعابير القياسيه L20e0
التكرار :

في بعض المرات , تريد ان تقول ان هناك بعض النصوص تكرر اكثر من مره, يمكنك التعبير هنا بطريقتين في التعابير القياسيه ,, الاولى بإستخدام الحرف * و معناه ان النمط يمكن تكرار ( صفر او اكثر ) من مره. والطريقه الاخرى هي الحرف + وهذا معناه ان النمط يمكن ان يتكرر ( مره او اكثر )

اجزاء التعابير:

مثال على هذه الطريقه لتوضيحها , (very )*large سوف تقوم بمطابقة التالي: 'large' و 'very large' و 'very very large' وهكذا

عد اجزاء التعابير:

يمكنك تحديد عدد تكرار بعض الاشياء بإستخدام الارقام بين الاقواس {} , يمكنك تحديد مطابقة تماما بالطريقه التاليه {4} ومعناه 4 مرات تكرار , او مدى تكرار {2 , 4} ومعناه من مرتان الى اربع مرات او مدى غير منتهي {2, } ومعناه على الاقل مرتان تكرار , فلو عملنا التالي (very ){1,3} فسوف يطابق التالي 'very ' و 'very very ' و 'very very very '.

بداية ونهاية التعابير القياسيه :

الطريقه التي سأعرضها الان سوف تقوم بتعليمك ان تطابق النص اذا كان في البدايه او النهايه وغيرها , ويمكن ذلك بإستخدام الحرف ^ , ( انتبه , لا تقم بالتعارض مع الطريقه التي بالاعلى ) , هذا الحرف ^ يقوم بالمقارنه في بداية النص والحرف $ يقوم بالمقارنه في نهاية النص. فلو قلنا ^bob فهذا يطابق bob في بداية النص , ولو قلنا com$ فهذا يقارن com في نهاية النص, لو تلاحظ المثال التالي ^[a-z]$ فهذا معناه ان يطابق اي حرف في النص كل على حده

التفريعات :

لو اردنا ان نطابق العبارات com او edu او net فسوف نستخدم الطريقه التاليه (com) | (edu) | (net)

( ملاحظه: لو ادرت ان تطابق احدى علامات التعابير مثل $ او * فيجب ان تضع امامها العلامه , فلو اردت ان تطابق العلامه فسوف تقوم بالتالي )



العثور على النصوص بإستخدام التعابير القياسيه :

هناك نوعان لمطايقة التعابير القياسيه , وهما ereg و eregi وطريقة عمل الاول كالتالي:

الدرس العشرون: التعابير القياسيه L20e1

هذه الداله تبحث في العباره ( search ) عن ما يطابقه بالنمط ( pattern ) , لو قلنا ان لدينا نموذج يضع فيه المستخدم بريد الكتروني ونريد ان نتحقق من صحة البريد الالكتروني , فسوف يكون التعبير القياسي كالتالي:

الدرس العشرون: التعابير القياسيه L20e10

لنقم بشرح كل عباره على حده :

الدرس العشرون: التعابير القياسيه L20e11

هذه العباره تعني ان يبدأ النص على الاقل بحرف واحد او رقم واحد او علامة _ او - او مجموع منهم ثم العلامه @

الدرس العشرون: التعابير القياسيه L20e12

هذا التعبير يطابق الجزء الاول من العنوان مثلا ( yahoo ) ثم العلامه . واستخدمنا كما قلنا بالاعلى

الدرس العشرون: التعابير القياسيه L20e13

يطابق نهاية البريد الالكتروني مثلا (com)

الان طريقة الاستخدام كالتالي

الدرس العشرون: التعابير القياسيه L20e2

الدالة eregi تقوم بنفس العمل , ولكنها غير حساسه لحالة الاحرف.



استبدال النصوص بإستخدام التعابير القياسيه:

يمكن استخدام دالة استبدال النصوص ereg_replace او eregi_replace بنفس طريقة استخدام الدالة str_replace التي تعلمناها في الدرس السابق, وكما تعلم الداله eregi_replace هي نفسها الداله ereg_replace ولكن غير حساسة لحالة الاحرف


الدرس العشرون: التعابير القياسيه L20e3


فصل النصوص بإستخدام التعابير القياسيه:

داله اخرى مفيده في التعابير القياسيه وهي split ,, وطريقتها كالتالي

الدرس العشرون: التعابير القياسيه L20e4

الان لاحظ المثال التالي:

الدرس العشرون: التعابير القياسيه L20e5

وناتج المثال هو كالتالي:

الدرس العشرون: التعابير القياسيه L20e6


--------------------------------------------------------------------------------

سؤال على الدرس :

1 - قم بالتعديل على تطبيق الدرس السابق , لكي يضمن التحقق من صحة البريد الالكتروني وان يكون الشركه غير مجانيه على سبيل المثال , واذا كانت الرساله تحوي على كلمة قطع غيار فيتم ارسالها الى قسم معين وهكذا

الـــدرس الــقادم :

سوف نتعرف في الدرس القادم على التاريخ والتحكم به في لغة PHP
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://fbrkaeg.yoo7.com
 
الدرس العشرون: التعابير القياسيه
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
»  الدرس السابع: متفرقات عن لغة PHP
»  الدرس الثاني: اول برنامج PHP
»  الدرس الرابع: العبارات الشرطيه
»  الدرس الثامن والعشرون: الجلسات في PHP
» الدرس الثلاثون: مكتبة الصور في لغة PHP

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات فبركة ايجى :: عالم كونكر اون لاين و Conquer Online Private Servers :: لغة السي شارب #C-
انتقل الى: