نقلا عن الأخ الغملاسي : الموضوع
==================================================
السلام عليكم
الدرس الخامس : Repeating Matches تكرار التطابق
مدة الدرس 4 دقائق
هل تعلم أن في الدرس الرابع تكلمنا عن أداتين من أدوات التطابق ألا وهما * و +
لكن ما يعيب تلك الأداتين هو أننا لا نستطيع بهما أن نحدد القيمة المدخلة, اي كحد أقصى .
لذلك الذي يهمنا في هذا الدرس هي الأداة {} القوسين المعقوفين
تأخذ هذه الأداة حالتين فقط لا ثالث لهما وهي أما بهذا الشكل {n} أو بهذا الشكل {Min,Max}
حيث n ينوب عنها رقم .
الحالة الأولى {n} تحديد عدد المطابقة بالرقم الذي يستبدل بـ n
مثال ذلك تريد أن تطابق قيمة بحيث لا تقل عن رقمين تكون كالتالي
string str1 = "\d{2}"كذلك هذا الشكل يؤدي إلى نفس الغرض والمعنى .
string str2 = "[0-9]{2}"يتم التطابق بحيث يتوجب ان يكون في القيم المدخلة رقمين متعاقبين اي متسلسلين مثلاً 45 لكن ليس 1@1
الحالة الثانية {Min,Max} تحدد عدد المطابقة كحد أدنى وحد أقصى بستبدال كلتا الـ Min Max
بحيث يكون Min عدد صحيح موجب يوشير إلى الحد الأدنى للتطابق
وحيث يكون Max عدد صحيح موجب , يساوي أو أكبر من Min يوشير إلى الحد الأقصى للتطابق
ويكون بحذف الـ Max عدد لا منتهي Infinite .
مثال ذلك تريد الخانة أن تقبل عدد من الأرقام لا تقل عن رقم ولا تزيد عن خمسة أرقام يكون كالتالي
string str3 = "\d{1,5}"لجعل الخانة تقبل رقم واحد فقط كحد أدنى و عدد غير محدد Infinite كحد أقصى يكون كالتالي
string str3 = "^\d{1,}$"تلاحظ أن خانة الـ Max فارغة وهذا يعني أن العدد غير محدد Infinite .
لو إفترضنا انك وضعت هذه الصيغة بحيث يكون الرقم صفر في الـ Min
string str3 = "\d{0,2}"في هذه الحالة أنت جعلت الخانة إختيارية , اي تقبل القيمة Null لو تُركت فارغة تم التطابق
السبب أنك وضع القيمة صفر في الـ Min وهذا يعني أنك تقول طابق أما فراغ أو عدد واحد أو عددين .
لو وضعت الصغية معكوسة بحيث الـ Min أكبر من الـ Max بهذا الشكل
string str3 = "\d{4,2}"فإن رسالة الخطأ ستظهر Exception will thrown
اسئلة الدرس الخامس
صح أم خطأ مع تصحيح الخطأ إن وجد .
يقابل أداة النجمة * الصغية التالية ؟
{0,}يقابل أداة الزائد + الصغية التالية ؟
{1,}تعني الصغية التالية مطابقة رقم أو أكثر ؟
[0-9]+
تعني الصيغة التالية مطابقة رقم أو أكثر ؟
[0-9+]
هذه الصيغة تقبل تطابق الرقم التالي 250 ؟
2[0-4]\d
هذه الصيغة تعني القيمة التالية {} [1-9]
\d{}هذا والله أعلم
-------------------------------------------
وهذه الأجوبة كالتالي
1 - yes
2 - yes
3 - yes
4 - No it means single digit or + character
5 - No it's limited to 249 only
6 - {} No it means single digit and
وفقكم الله