صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 23

الموضوع: التعبير القياسية التوغل فيها برفق

  1. #1

    التعبير القياسية التوغل فيها برفق



    سأحاول هنا و بإختصار شديد نشر بعض النقاط المهمة التي تساعدنا و تمكنا في التوغل برفق في بحر التعابير القياسية. آمل أن أوفق في إيصال المعلومة.

    الشرح سيكون بدون إسهاب و في شكل نقاط مختصرة جدا. و ذلك نسبة لتشعب الموضوع







  2. #2


    تستخدم
    كود PHP:
    PHP 
    نوعين من هذه التعابير هما :
    1. Portable Operating System Interface - POSIX
    1. Perl Compatible Regular Expressions - PCRE
    النوع الثاني هو الأكثر استخداماً نسبة لقوته و سرعته

    الدوال الأكثر استخداماً :
    كود PHP:
    preg_match()

    preg_match_all()

    preg_replace()

    preg_replace_callback()

    preg_grep()

    preg_split()

    preg_last_error()

    preg_quote()

    ereg()

    eregi() 







  3. #3


    أولاً المعرّفة caret
    كود PHP:

    في الكيبورد توجد في المفتاح رقم 6
    لها استخدامين داخل الأقواس و خارج الأقواس

    سنبدأ أولاً بإستخدامها خارج الأقواس

    استخدامها : هي تبحث في النص إبتدا من أوله و بالترتيب
    مثال لها :
    كود PHP:
    $a "Swalif is my favorite forum";
    if(
    eregi("^Swalif"$a)){
    echo 
    "Yes, it is";
    }else{
    echo 
    "No, it is not";

    لاحظ أننا وضعنا المعرّفة ^ بدون أقواس.
    أننا بدأنا بحثنا عن كلمة Swalif و هي أول كلمة في المتغير a$
    الدالة eregi هي case-insensitive أي غير حساسة لحالة الأحرف و تقبل الأحرف الصغيرة و الكبيرة معاً. Swalif أو swalif - في حالة أردنا حصر البحث يجب علينا استخدام الدالة ereg لأنها sensitive أي حساسة لحالة الأحرف.
    المعرفة تقبل الكلمات حسب الترتيب شاملا ذلك المسافات





    التعديل الأخير تم بواسطة مسدار ; 16-12-2008 الساعة 01:17 AM

  4. #4


    في حالة استخدامنا للدالة preg_match
    يتوجب علينا حصر الكلمة المراد بحثها بين خطين مائلين two slashes
    لا تشترط البحث في أول النص و لكنها تشترط البحث في أول الكلمة التي قمنا بتحديدها.

    مثلاً :

    كود PHP:
    $a "My favorite forum is Swalif";
    $b '/^Swalif/';
    preg_match($bsubstr($a,21), $matchesPREG_OFFSET_CAPTURE);
    print_r($matches); 
    لاحظ :
    كلمة Swalif لم تكن في أول النص
    المتغير a$ يحمل قيمة النص كاملاً
    المتغير b$ يحمل قيمة الكلمة المراد البحث عنها
    في السطر الثالث و حسب تكوين الدالة pregmatch وضعنا المتغير المراد البحث عنه أولاً مفصول بعلامة (الكوما) ثم حددنا موقع الكلمة من النص عن طريق الدالة ()substr بإعتبار أن كلمة Swalif تبعد مسافة 21 وحدة من أول النص ثم وضعنا (الكوما) ثم وضعنا المتغير matches$ و هو مطلوب دوماً في الدالة preg_match ثم وضعنا (الكوما) ثم وضعنا الفلاق PREG_OFFSET_CAPTURE و هو من مزايا الدالة preg_match ايضا.






  5. #5


    ثانيا : المعرّفة
    كود PHP:

    علامة الدولار Dollar sign

    استخدامها : إذا كانت المعرّفة ^ تبحث لنا عن بداية النص متقدمة نحو الآخر
    فإن علامة الدولار عكسها تماما، تبحث لنا في آخر النص متقدمة نحو البداية

    مثال :

    كود PHP:
    $a "My favorite forum is Swalif";
    if(
    ereg("Swalif$"$a)){
    echo 
    "What is your favorite forum?";
    }else{
    echo 
    "what is your friend favorite forum?";

    لاحظ :
    يمكننا البحث عن الجملة forum is Swalif كاملة ما دامت منتهية بكلمة Swalif






  6. #6


    لاحظ:
    ان المعرّفتين لا تبحثان في الكلمات و لكنهما تبحثان في الأحرف
    مثلاً :
    إذا اردنا البحث عن كلمة Swalif من الكلمة Swalifforum فإننا نستخدم المعرّفة ^ بإعتبار أن أحرف الكلمة واردة بالبداية. و إذا أردنا أن نبحث عن بقية الكلمة المتمثلة في كلمة forum فإننا نبحث عنها بالمعرفة $ بإعتبار أن أحرف الكلمة واردة بالنهاية. و في حالة أردنا الكلمة كاملة فإننا نجمع بين المعرّفتين معاً.

    مثال :
    كود PHP:
    $a "Swalifforum";
    if(
    ereg("^Swalifforum$"$a)){
    echo 
    "Swalif!!!, I love it so much";
    }else{
    echo 
    "I love all php forum except Swalif";








  7. #7


    ثالثاً : المعرّفة
    كود PHP:
    [.......] 
    لو افترضنا أن سألك أحد أصدقائك لتكتب له اسم سوالف بالإنجليزي
    ربما ستكتب له كلمة سوالف هكذا Swalif
    و لكن لو سألوني أنا أن أكتب كلمة سوالف فإنني سأكتبها هكذا Swalef
    الكلمتين صحيحتين في المعنى و لكن يختلفان في التركيبه الحرفية

    السؤال هنا : كيف نجعل برمجتنا تقبل الكلمتين معاً

    هذا يتم عن طريق الأقواس العادية [ ]

    مثال توضيحي :

    كود PHP:
    $a "Swalif";
    $b "/Swal[ie]f/";
    if(
    preg_match($b$a$matches)){
    echo 
    $matches[0];
    }else{
        echo 
    "We did not find these words in Swalif";

    لاحظ :
    أن المتغير a$ يحمل قيمة النص
    أن المتغير b$ يحمل القيمة المراد البحث عنها
    الدالة preg_match ستبدأ البحث من حرف S ثم w ثم l ثم أحد الحرفين الموجودين داخل الأقواس ثم حرف f

    سين سؤال : ماذا تعني الأقواس [ ] بكلمة Swal[ie]f
    جيم جواب : الأقواس تفيدنا بما يلي :
    تفيدنا بأن ما بداخل الأقواس يجب أن يكونان حرفين مطلوب أحدهما. فإذا نظرنا إلى قيمة المتغير a$ سنجد أن كلمة سوالف مكتوبة بحرف الـ ( i ) لذلك فإن الدالة preg_match ستأخذ حرف الـ ( i )و تترك حرف الـ ( e ) و تواصل في طباعة بقية لكلمة.






  8. #8


    المذيد من الاسئلة التوضيحية :
    كود PHP:
    $a "Swalifforum";
    $b "/Swal[ie]ffor[uo]m/";
    if(
    preg_match($b$a$matches)){
    echo 
    $matches[0];
    }else{
        echo 
    "We did not find these words in Swalifforum";

    هذه المرة استخدمنا الأقواس مرتين في كلمة واحدة هي Swalifforum
    في القوس الأول يمكننا طباعة احد الحرفين التاليين ie و في القوس الثاني يمكننا طباعة أحد الحرفين التاليين uo






  9. #9
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    جزلك الله خير اخي علي الموضوع يارب تكمله وده تطبيق بسيط

    كود PHP:
    $m="mohamedhelal";

    if(
    ereg("^mohamed",$m))
    {
    echo
    "الكلمة في اول الكلمات";

    }else
    {

    echo
    "الكلمة مش في اول الكلمات";


    }

    if(
    preg_match("/^mohamed/",$m))
    {
    echo
    "الكلمة في اول الكلمات";

    }else
    {

    echo
    "الكلمة مش في اول الكلمات";



    جزاك الله الف خير اخي





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  10. #10


    في حالة اردنا طباعة حرف S من كلمة Swalif ليكون حرف كبير (كابيتال) سيكون المثال كما يلي :

    كود PHP:
    $a "Swalif";
    $b "/[Ss]walif/";
    if(
    preg_match($b$a$matches)){
    echo 
    $matches[0];
    }else{
        echo 
    "Please keep swalif with small letter";

    الحرف الأول (حرف S) وضعنا له قيمتان - إما حرف كبير أو حرف صغير






  11. #11


    لو افترضنا أن أرقام الجوالات في المملكة العربية السعودية تبدأ بالرقم 05
    يمكننا أن نكتب أن رقم الجوال يبدأ بالرقم 5 و ليس هنالك أي داعي لكتابة الرقم 0 في الأول. لأنه معروف لدينا أن أي رقم جوال يبدأ بالرقم 0

    مثال :

    كود PHP:
    $a "051234567";
    $b "/[0 ]51234567/";
    if(
    preg_match($b$a$matches)){
    echo 
    $matches[0];
    }else{
        echo 
    "Please keep swalif with small letter";

    لاحظ :
    أن هنالك قيمتين داخل الأقواس هي 0 و المسافة الفاضية (space)
    و هذا يفيدنا بأن الجوال بالمملكة يبدأ بالرقم 5 أو 05






  12. #12


    أنظر للمثال التالي لترى فعالية الأقواس :

    كود PHP:
    $swalifterms "12";
    if(
    ereg("[0-9]"$swalifterms)){
    echo 
    "You are too young to register in Swalif";
    }else{
        echo 
    "plz tell us accurately, what is your real age";

    لاحظ :
    أن المتغير $swalifterms يحمل القيمة 12 و هي قيمة تشتمل على أرقام
    في حالة اضافة أي حرف للرقم 12 ستظل القيمة رقمية مالم تدخل عليها بعض المعرفات الأخرى (سنستعرض ذلك لاحقا)
    المعرّفة [9-0] تبحث لنا عن الأرقم من 0 إلى 9 (سوف نستعرض هذه المعرّفة لاحقاً)






  13. #13


    مثال مشابه :

    كود PHP:
    $forum "swalif";
    if(
    ereg("[a-z]"$forum)){
    echo 
    "Swalif always stand first";
    }else{
        echo 
    "Swalif sometimes fail to stand first";

    المعرّفة [a-z] تبحث لنا عن الأحرف الصغيرة فقط






  14. #14


    مثال مشابه :

    كود PHP:
    $forum "swalif";
    if(
    ereg("[A-Z]"$forum)){
    echo 
    "Swalif always stand first";
    }else{
        echo 
    "Swalif sometimes fail to stand first";

    المعرّفة [A-Z] تبحث لنا عن الأحرف الكبيرة فقط






  15. #15


    مثال مشابه :

    كود PHP:
    $forum "swalif";
    if(
    ereg("[a-z0-9]"$forum)){
    echo 
    "Swalif always stand first";
    }else{
        echo 
    "Swalif sometimes fail to stand first";

    المعرّفة [a-z0-9] تبحث لنا عن الأحرف الصغيرة مع الأرقم من 0 إلى 9 فقط










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض