You are on page 1of 7

‫الدرس التاسع عشر‪ :‬التعابير القياسية ‪2‬‬

‫بعد ان تحدثنا عن مقدمة التعامل مع التعابير القياسية (‪ )Regular Expressions‬ومميزاتها وبعض األمثلة عنها في الدرس‬
‫السابق‪ ،‬نأتي اليوم الى اكمال حديثنا عنها بشرح المزيد من األمثلة للمقارنة بين مميزات استخدامها والبرمجة بدونها وكما كرنا‬
‫سابقا ً يبقى خيار استخدامها او تركها للمبرمج مع التأكيد على أهميتها لتقليل حجم البرنامج وتسريع التنفيذ فتابعوا معنا‪:‬‬
‫المثال األول‪ :‬استرجاع األرقام فقط‪:‬‬

‫هذا المثال يتكون من ثالث أسطر برمجية فقط في األول قمنا باستيراد مكتبة التعابير القياسية التي ال يمكن ان تعمل اال باستيراد‬
‫مكتبتها والسطر الثاني ادخال لقيمة المتغير (‪ )x‬واما السطر الثالث فهو تعريف للمتغير (‪ )y‬واسناد قيمة (او قيم) له هي عبارة‬
‫عن ناتج تنفيذ عبارة البحث ضمن المتغير (‪ )x‬عن أي سلسلة رقمية تحتوي األرقام من الصفر الى التسعة ويمكن البحث عن‬
‫أي سلسلة رقمية او رمزية وكما في ادناه‪:‬‬
‫المثال الثاني‪ :‬استرجاع قيم رمزية لمجموعة حروف معينة فقط‪:‬‬

‫وكما شرحنا في أعاله‪:‬‬


‫‪ Y‬تقوم بإرجاع األرقام‬
‫‪ Z‬تقوم بإرجاع السالسل الرمزية التي تحتوي الحروف الصغيرة من ‪ a‬الى ‪ r‬علما ً ان ال ‪ r‬من ضمنها‪.‬‬
‫‪ W‬تقوم بإرجاع السالسل الرمزية التي تتكون من حروف كبيرة فقط‪.‬‬
‫المثال الثالث‪:‬‬
‫هنا قلنا للمفسر قم بطباعة قيمة المتغير (‪ )y‬على انها أي سلسلة رمزية تبدأ بالحرف الكبير (‪ )F‬ثم بعده مجموعة رموز وصوالً‬
‫الى النقطتين (‪ ):‬ولكن ألن الرمزين (‪ +‬و *) يسميان أدوات المطابقة الطماعة (‪ )greedy matching tools‬فهما يقومان‬
‫بالتعدي الى ابعد نقطة مطابقة للشروط ولذلك لم تتوقف المطابقة عند اول نقطتين (‪ ):‬وانما تجاوزتها الى اخر نقطتين‪ .‬ولتالفي‬
‫هذه المشكلة نتابع المثال التالي‪:‬‬
‫المثال الرابع‪ :‬المطابقة غير الطماعة (‪:)non-greedy matching‬‬

‫هنا قمنا بكتابة نفس الكود البرمجي وكل ما غيرناه هو إضافة (?) الى التركيب القياسي لنجعله يتوقف عند اول نقطة مطابقة‬
‫لنهاية السلسلة المطلوبة وهكذا حصل‪.‬‬
‫المثال الخامس‪ :‬تركيز المطابقة حول رمز واحد‪:‬‬

‫هنا قلنا للمفسر قم بالبحث عن الرمز (@) وقبله على األقل رمز واحد ليس فراغ (‪ )non-whitespace‬وبعده على األقل رمز‬
‫واحد ليس فراغ (‪ )non-whitespace‬وقم بوضعه داخل المتغير (‪ )y‬ثم اطبعه‪.‬‬
‫المثال السادس‪ :‬لزيادة التركيز أكثر في نتائج المطابقة نستخدم االقواس () والتي تحدد بداية ونهاية الجزء المراد ارجاعه كما‬
‫في ادناه‪:‬‬

‫وهنا نالحظ ان ال (‪ )z‬على الرغم من انها تحتوي على الكثير من الرموز للمطابقة بداخلها اال ان ما ارجعته عبارة الطباعة هو‬
‫فقط ما كان محصوراً بين القوسين () وهو المطلوب لتضييق نطاق النتائج المرجعة‪.‬‬
‫المثال السابع‪:‬‬

‫المثال الثامن‪ :‬البحث بطريقة التجزئة المزدوجة (‪ :)double split‬وقد سبق التطرق الى هذه الطريقة وشرحها سابقا ً‬
‫المثال التاسع‪ :‬لتطبيق نفس المطلوب في المثال السابق باستخدام التعابير القياسية‪:‬‬

‫وللتوضيح الحظ الشرح التالي‪:‬‬


‫المثال العاشر‪ :‬خيارات أكثر للبحث والمطابقة‪:‬‬

‫الى هنا احبتي الكرام ينتهي درس اليوم وينتهي الجزء األول من دورتنا المستمرة ان شاء هللا وقد تناولنا في هذه الدورة كل ما‬
‫يتعلق بأدوات االدخال واإلخراج واساسيات البرمجة بلغة بايثون ومعالجة البيانات الرقمية والنصية بكل الطرق الممكنة‪ .‬سيكون‬
‫تركيزنا في األجزاء القادمة من هذه الدورة ان شاء هللا على البرمجة للتطبيقات التفاعلية (‪)interactive applications‬‬
‫للحاسوب والهواتف النقالة ان شاء هللا وربما نصل الى مرحلة البرمجة للتطبيقات الموزعة عبر االنترنت (الشبكات) وبرمجة‬
‫مواقع االنترنت بلغة بايثون فتابعوا معنا وهللا الموفق لكل خير‪.‬‬
‫كالعادة‪ :‬ال تنسونا بالدعاء والمشاركة بالنشر لتعميم الفائدة ‪‬‬

You might also like