الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سلسلة تعلم Regular Expressions

مغلق
بدأه Ahmed H. Alawady في 6 أكتوبر 2005 · 0 رد · 849 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

نقلا عن الأخ الغملاسي : الموضوع

==================================================

السلام عليكم

الدرس الخامس : 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

وفقكم الله

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

هذا الموضوع مغلق.

مواضيع مشابهة