التعابير النمطية Regular Expressions الجزء الأول‎

في درس السابق تكلمت عن إستخدام التعابير النمطية في برمجة تطبيقات الويب,والتعابير النمطية تسهل علينا الكثير من أمور وفي هذه السلسلة سنقوم بشرح وفهم التعباير النمطية,التي ربما المحتوى العربي ﻻ يحتوي على دروس عليها لفهمها جيدا
ماهي التعابير النمطية Regular Expressions؟
التعابير النمطية هي طريقة متطور للبحث داخل نص معين عن كلمات او جمل لعمل مقارنة عليها وإستخراج الكلمة او الجملة المطبقة عليها التعبير النمطي,والتعابير النمطية يمكن إستخدامها في عديد من اللغات البرمجة مثل Python,Perl,Php,C نظرا لقوتها في تعامل مع النصوص والبحث داخلها فهي تسهل علينا عمل كثيرا,يمكن تسميتها regex or regexp,وهذا ابسط تعريف علمي لها.

مثال على التعابير النمطية:
نفترض أننا نملك ملف يحتوي على إميﻻت عديدة مثﻻ yahoo,gmail,aol,hotmail..etc ونريد من سكربت أن يطبع لنا فقط اميﻻت الدومين gmail هنا يأتي دور التعابير النمطية بدﻻ من كتابة سكربت معقد وكثير الشفرات فبالتعابير النمطية ربما لن يزيد عدد أسطر السكربت عن 5 أسطر

سأوضح الفائدة من التعابير المنطية بمثال واضح جدا فتابع معي جيدا عزيز القارئ
لدينا هنا المتغير sub الذي يحتوي على القيم Values

cOB5K

لدينا متغير آخر وهو S يحتوي أيضا على قيم التالية

3

الآن سنعمل مقارنة سنعطي للبايثون تعبير نمطي نقول له إذا كان أول حرف من المتغير sub يساوي أول حرف من تغير S بكل بساطة ستكون الشفيرة كالتالي
s[0] == sub[0]
هنا شفيرتنا غير محقق أي False ﻻحظ الصورة تالية

6
حسنا سنعطي للبايثون تعبير نمطي آخر سنقول له قارن الحرف الثاني والثالث والرابع من المتغير S مع كل قيم المتغير sub شفيرة بكل بساطة ستكون كالتالي
if s[1:4] == sub
هنا البايثون سيستخرج الحرف الثاني من المتغير S وهو a يعني الحالة True ينتقل البايثون إلى الحرف الثالث وهو a هنا البايثون سيتوقف أي أن الشرط غير محقق فالحرف الثالث غير مطابق مع قيمة الثانية من المتغير sub إذا الحالة False,ﻻحظ الصورة التالية باللون الاخضر يعني الشرط محقق والأحمر غير محقق فيتوقف عمل البرنامج كليا

5

التعبير النطي الثالث سنقول للبايثون قارن الحرف الثالث والرابع والخامس مع كل قيم متغير sub الشفيرة تكون كنحو التالي
if s[2:5] == sub
الحرف الثالث مطابق والرابع مطابق الخامس غير مطابق فيتوقف عمل البرنامج ﻻحظ الصورة التالية

6
التعبير النمطي الرابع سنقول للبايثون قارن الحرف الثالث والرابع والخامس مع قيم المتغير sub الشفيرةتكون كالتالي
if s[3:5] == sub
أول حرف غير مطابق إذا سيتوقف عمل البرنامج ﻻحظ الصورة التالية
7
التعبير النطي الأخير سنقول للبايون قارن الحرف الرابع والخامس والسادس مع قيم المتغير sub الشفيرة تكون الكتالي
if s[4:6] == sub
سنجد أن الشرط كله محقق True ﻻحظ الصورة التالية

هذا أبسط وابسط تعبير نمطي قد تراه في عالم البرمجة وهذا بدون إستدعاء أي مكتبة تخص التعابير النمطية
سيكون هذا اول جزء من سلسلة تعلم التعابير النمطية في البايثون,عليك عزيزي القارئ أن تدرس أساسيات البايثون أولا قبل دخول إلى التعابير النمطي