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

سلسلة تعلم Regular Expressions

مغلق
بدأه الشهاب الحارق في 14 مارس 2005 · 6 رد · 1,740 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

هذا والله أعلم

RepeatingMatches.zip

في المثال يتضح المقال

#2

السلام عليكم ورحمة الله وبركاته

الأخ الغملاسي العزيز ، جزاك الله ألف خير على هذه الدروس المهمة والقيمة والناتجة عن خبرة كبيرة

وأعتذر إليك عن كل من لم يرد على موضوعك القيم بكلام قيم مضمونه : لا تنتظر الرد دائما لأن هناك من يقوم بحفظ الدرس على جهازه ليقرأه لاحقا أو عند حاجته وهذا لابد وأن يأتي يوم ويحتاج لذلك. فأنا مثلا لا أخفيك أني قرأت درسك الأول فقط ونظرا لكثرة المواضيع التي أشاهدها هنا وهناك لاأجد متسع لقرائتها كلها لذلك قد عملت على جهازي مجلد خاص بدروسك وأجمعها أول بأول حتى إذا ماوصلت إلى مرحلة متقدمة في vb.net بدأت بها...

وفقك الله

فلسطين الزاهية بألوان الحب والسلام

ذلك الطعم الزيتوني الذي يتدفق عسلاً من أفواه بساتينها وحدائقها

تشتاق إليها نفوس المتقين وترنوا للسجود فيها جباه المسلمين

#3

السلام عليكم

أحسن الله إليك , أنا لا أنتظر الرد بقد ما أنتظر أن أفرغ لكي أحضر ثم أكتب الدرس

لانه المشاريع على قدمِ وساق في العمل وهذا يأخذُ جُل الوقت .

السلام عليكم

في المثال يتضح المقال

#4

بأمانة .. جزاكم الله كل خير..

في العادة لا أقرأ الدروس لأني لا أؤمن بالعلم الtake away..

لكن هناك بعض الاستثناءات.. و هذه السلسلة منهم:

1. موضوع مهم جداً و حاولت ان أبدأ فيه من الMSDN من قبل لكن العملية اسودّت امام عيني من كل هذه الرموز فكسلت أكمّل .. :D :D

2. الاسلوب شيق و لا يبعث على الملل

طبعاً تسألني: قرأت السلسلة؟

"لا و لكن حفظتها على جهازي :D :D :D"

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#5

السلام عليكم

تسلم كثير أستاذي undo أنت حقاً redo

هذا شرف كبير بالنسبةِ لي أنك حفظت دروسي فضلاً عن قراءتها .

كل الشكر والتقدير على الإطار و خطاكم إن شاء الله أنتم و الأخوة إلى الجنةِ تمضي وتسير .

السلام عليكم

في المثال يتضح المقال

#6

وصلنا الدرس الخامس:

الأجوبة كالتالي (الرجاء مراجعتها لاني لا اعرف صحتها)

صواب

صواب

صواب

خطأ

خطأ

خطأ

راجل منظم جداً يا غملاسي.. :D :D تلاتة صح و بعدين 3 خطأ

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#7

السلام عليكم

بارك الله فيك أخي 100 على 100 و درجة إمتياز (مبروك)

وهذه الأجوبة كالتالي

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

وفقكم الله

في المثال يتضح المقال

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

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