السلام عليكم
الدرس الخامس : Repeating Matches تكرار التطابق
مدة الدرس 4 دقائق
هل تعلم أن في الدرس الرابع تكلمنا عن أداتين من أدوات التطابق ألا وهما * و +
لكن ما يعيب تلك الأداتين هو أننا لا نستطيع بهما أن نحدد القيمة المدخلة, اي كحد أقصى .
لذلك الذي يهمنا في هذا الدرس هي الأداة {} القوسين المعقوفين
تأخذ هذه الأداة حالتين فقط لا ثالث لهما وهي أما بهذا الشكل {n} أو بهذا الشكل {Min,Max}
حيث n ينوب عنها رقم .
الحالة الأولى {n} تحديد عدد المطابقة بالرقم الذي يستبدل بـ n
مثال ذلك تريد أن تطابق قيمة بحيث لا تقل عن رقمين تكون كالتالي
Const str1 As String = "\d{2}"كذلك هذا الشكل يؤدي إلى نفس الغرض والمعنى .
Const str2 As String = "[0-9]{2}"يتم التطابق بحيث يتوجب ان يكون في القيم المدخلة رقمين متعاقبين اي متسلسلين مثلاً 45 لكن ليس 1@1
الحالة الثانية {Min,Max} تحدد عدد المطابقة كحد أدنى وحد أقصى بستبدال كلتا الـ Min Max
بحيث يكون Min عدد صحيح موجب يوشير إلى الحد الأدنى للتطابق
وحيث يكون Max عدد صحيح موجب , يساوي أو أكبر من Min يوشير إلى الحد الأقصى للتطابق
ويكون بحذف الـ Max عدد لا منتهي Infinite .
مثال ذلك تريد الخانة أن تقبل عدد من الأرقام لا تقل عن رقم ولا تزيد عن خمسة أرقام يكون كالتالي
Const str3 As String = "\d{1,5}"لجعل الخانة تقبل رقم واحد فقط كحد أدنى و عدد غير محدد Infinite كحد أقصى يكون كالتالي
Const str3 As String = "^\d{1,}$"تلاحظ أن خانة الـ Max فارغة وهذا يعني أن العدد غير محدد Infinite .
لو إفترضنا انك وضعت هذه الصيغة بحيث يكون الرقم صفر في الـ Min
Const str3 As String = "\d{0,2}"في هذه الحالة أنت جعلت الخانة إختيارية , اي تقبل القيمة Null لو تُركت فارغة تم التطابق
السبب أنك وضع القيمة صفر في الـ Min وهذا يعني أنك تقول طابق أما فراغ أو عدد واحد أو عددين .
لو وضعت الصغية معكوسة بحيث الـ Min أكبر من الـ Max بهذا الشكل
Const str3 As String = "\d{4,2}"فإن رسالة الخطأ ستظهر Exception will thrown
اسئلة الدرس الخامس
صح أم خطأ مع تصحيح الخطأ إن وجد .
يقابل أداة النجمة * الصغية التالية ؟
{0,}يقابل أداة الزائد + الصغية التالية ؟
{1,}تعني الصغية التالية مطابقة رقم أو أكثر ؟
[0-9]+
تعني الصيغة التالية مطابقة رقم أو أكثر ؟
[0-9+]
هذه الصيغة تقبل تطابق الرقم التالي 250 ؟
2[0-4]\d
هذه الصيغة تعني القيمة التالية {} [1-9]
\d{}هذا والله أعلم