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

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

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

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

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

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

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

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

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

