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

سلسلة تعلم Regular Expressions

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

السلام عليكم

الدرس الرابع : Using MetaCharacters إستخدام أدوات Regex

مدة الدرس 8 دقائق

هنالك جملة من الأدوات لـ Regex تستخدم في عملية المطابقة , منها ماذكرناه في الدرس الثاني وهي أدات النقطة

كذلك عملية escaping التي علق عليها الإستاذ عبدالله بأنها تحول الادوات الخاصة بـ Regex إلى وضعها الطبيعي كرموز مثل النقطة

و أنا و الأستاذ عبدالله نتفق إن شاء الله كذلك أن الـ Backslash \ يقوم كذلك بتحويل بعض الأحرف الطبيعية إلى أدوات لـ Regex

منها مثلاً d\ وغير ذلك .

نذكر أهم هذه الأدوا ت

أولاً أداة النجمة : تنوب عن صفر أو أكثر بالقيمة التي سبقتها مثلاً

  Const str1 As String = "\d*"

التعليق : طابق لا شيء اي قد يكون فارغ Null لاتوجد قيمة أو أكثر اي أو توجد ( من الأرقام) كون \d يعني ارقام سنتطرق له لاحقاً .

السبب: كون أداة * النجمة تقبل صفر أو أكثر المقصود بصفر ليس 0 zero إنما هو فارغ Null

في الـ VB.NET يعرف بـ Nothing

ثانياً أداة الزائد + : تنوب عن خانة أو أكثر بالقيمة التي سبقتها مثلاً

  Const str1 As String = "\d+"

التعليق : طابق رقم أو عدة أرقام بشرط أن لا يقل عن رقم

السبب : كون أداة + الزائد تقبل خانة أو أكثر ( اي شرطية ) لانها لا يمكن أن تترك فارغة .

الأداة d\ وتعني أرقام فقط وتمثلها الصيغة التالية

[0-9]

الأداة D\ وتعني اي شيء إلا الأرقام وتمثلها الصيغة التالية

[^0-9]

الأداة w\ وتعني حروف أرقام و شرطة سفلية underscore تمثلها الصيغة التالية

[a-zA-Z0-9_]

الأداة W\ وتعني أي شيء ماعدى الأحرف و الأرقام و الشرطة السفلية وتمثلها الصيغة التالية

[^a-zA-Z0-9_]

الأداة s\ وتعني المسافة space اي البحث عن فراغ

الأداة S\ اي شيء إلا المسافة وهي عكس \s

الأداة ^ وتعني بداية السطر Start Of the Line مثلاً

    Const str1 As String = "^\d+"

التعليق لتتم المطابقة لابد أن يبدأ السطر برقم مثلاً 1sasa

الأداة $ وتعني نهاية السطر End of the Line مثلاً

  Const str2 As String = "\d+$"

التعليق لتتم المطابقة لابد أن ينتهي السطر برقم مثلاً sasd1

و لجعل الخانة لا تقبل إلا أرقام ولا تقبل Null نكتب التالي

  Const str3 As String = "^\d+$"

التعليق لتتم المطابقة لابد أن تكون القيمة عبارة عن ارقام مثل 32343343 لكن ليس 2332334ق أو ض323232

الأداة b\ وتعني بداية الكلمة وتعرف بـ Word boundaries حدود الكلمة

للبحث عن أول الكلمة يكون كالتالي

     Const str1 As String = "\bH"

أبحث عن الحرف H في أول الكلمة مثلاً Hello مطابقة كون الحرف الأول هو H

وللبحث عن أخر الكلمة يكون كالتالي

Const str1 As String = "H\b"

إبحث عن الحرف H في أخر الكلمة

في المطابقة مثلاً OHHH مطابقة كون الحرف الأخير هو H

سنتكلم في درس مستقل عن الـ Word boundaries حدود الكلمة لنغطي جانب الأدوات المتوفرة في VB.NET

لتحل مشاكل إدخال المستخدم .

سؤال هذا الدرس : أكتب الصيغة المناسبة لمطابقة القيمة التالية خانة تقبل من واحد إلى عشرة على واحد إلى عشرة

لا تقبل الصفر ولا يمكن أن تكون فارغة . مثلاً 1\10 لكن ليس 0\1 أو Null

نكتفي بهذا القدر والله أعلى و أعلم .

Using_MetaCharacters.zip

تم تعديل هذه المشاركة بواسطة الغملاسي في 11 مارس 2005 في 19:37

1

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

#2
[123456789]|(10)//[123456789]|(10)
#3

السلام عليكم

حياك الله يا موسى

لكن الصيغة غير صحيحة إطلاقاً فهي تقبل 11/10 وتقبل 11/1110 وتقبل صفر 11/0 ؟؟؟؟

السلام عليكم

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

#4
^[123456789]|(10)//[123456789]|(10)$

هكذا صحيح

وإن لم يكن صحيح بين موضع الخطاء

أشكرك على الموضوع الجميل

#5

السلام عليكم لا شكر على واجب اخي

الصغية الحالية كذلك غير صحيحة فهي تقبل 111/s

لو أخبرتك الخطأ ... سأكون جاوبت على السؤال , وهو غير موجه لي

على كل حال المشكلة في المجموعات أو ما يعرف بـ Groups

ستكون من ضمن السلسلة القادمة من الدروس, وفي أخر درس سأجيب على كل الأسئلة التي سألتُها من خلال الدروس .

السلام عليكم

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

#6

أولاً أشكرك على هذا الدرس الممتاز ..

ولو قمت بوضع روابط للدروس السابقة في أول كل درس يكون ذلك جيداً جداً ..

هذه محاولة مني لحل السؤال السابق .. وأتمنى أن تكون صحيحة ..

^([1-9]|[1][0])/([1-9]|[1][0])$

والله أعلم ..

ani.gif
#7

أو ما يمكن التعبير عنه بـ

^([1-9]|10)/([1-9]|10)$
ani.gif
#8

بسم الله الرحمن الرحيم

\A([1-9]|10)/([1-9]|10)\Z

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

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#9

اعتذر من الاخ العزيز ( الذي افتقده كثيرا ) ... فلم انتبه لانه قد وضع الاجابة قبلي

اسحب إجابتي

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#10

السلام عليكم

ماشاء الله تبارك الرحمن

بلا شك أن جوابيكما ................. 100% 100

بارك الله فيكما

وكيف بي أن أصحح ما صح أصلاً بل أن جواب الأستاذ رغيد الطيب هو جديد بالنسبةِ لي والحمدُلله أنني تعلمت

أن A\ تعني العلامة ^ و أن Z\ تعني العلامة $ أليس كذلك ؟

السلام عليكم

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

#11

أخي رغيد إني أحبك في الله .. وأسأل الله أن يزيدك من علمه وأن يوفقك في دنياك وآخرتك ..

أخي الغملاسي بارك الله فيك على هذا الجهد المميز ..

وأتمنى أن نرى مشاركات بقية الأعضاء ..

ani.gif
#12

بسم الله الرحمن الرحيم

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

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

اما انت يا ابن فتحي فلا تعلم كم يؤثر بي كلامك اخي العزيز و اسأل الله تعالى ان يجعلني و اياك ممن يفرحون بلقائه سبحانه و جميع المسلمين .. و اسأله تعالى أن يحبك كما احببتني فيه اخي الكريم.

في آمان الله

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#13

السلام عليكم

:angry: كدة مش تمااااام..

الاجابة الصحيحة للسؤال لم ندرسها بعد .. انت بتغش و تضع أسئلة من خارج المقرر:D :D (رجعنا أيام الكلية تااااااااني :D :D)

لم أفهم استخدام \d* فهي تنجح في جميع الحالات .. اذكر لي مثال متى تفشل؟؟

سأطمع أكثر، و أقول ان الاسئلة يجب ان تكون اكثر تنوعاً حتى تثبت المعلومة .. يعني يمكن ان يكون هناك سؤال بالعكس.. ما هو معني الصيغة التالية؟ و هكذا..

و مشكووووور على السلسلة الرائعة.. (يا ترى كم درس ناقص حتى يتمكن الواحد من استخدام الregular expressions بكفاءة؟)

تم تعديل هذه المشاركة بواسطة undo في 21 مارس 2005 في 01:12

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

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

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

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

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

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

السلام عليكم حياك الله أخي undo لا استطيع أن أذكر لك أين تفشل لانها لا تفشل أبداً

لكن سأذكر لك شرحها بشكل مختصر بهذه الصيغة التالية

\d*

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

أو أرقام

والسبب بسيط أن علامة النجمة تقبل صفر Null أو أكثر وهذا يعني أن عدم وجود رقم أو قيمة أو وجود رقم سيكون مطابق فهي لا تفشل إلا إذا حددت بالأدوات النصية

مثل $ و ^ والله أعلم

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

#15

جزاكم الله خيراً..

بالأمس جلست افكر في مشروع لا يستطيع أن يقوم به احد غيرك..

مشروع "عدّة الغملاسي التعليمية للregular expressions" أو "Ghemlasi educational toolkit for regular expressions"

اسم يخضّ :D :D

عبارة عن مجموعة ملفات تهم أي مبتدئ (أو حتى خبير) في موضوع الregular expressions

1. ملف PDF عبارة عن tutorial فيه جميع الدروس التي كتبتها حتى الان

2. برنامج خاص باختبار الregular expressions .. يعني البرنامج عبارة عن صندوقين نص: واحد خاص بالصيغة و الاخر خاص بالنص المراد مقارنته ثم يعطي نتيجة من 3: مطابق، غير مطابق، او خطأ.

3. ملف وورد بالregular expression الشهيرة (و قام احد الاخوة جزاه الله كل خير بوضعه في احد هذه الدروس)

ايه رأيك؟؟

ملاحظة: ملف الPdf يجب ان يحتوي علىدرس اضافي عن كيفية استخدام الregular expressions و هو ما قمت بشرحه في احد الردود على الدرس الأول..

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

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

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

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

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

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

أخي العزيز أندو .. إقتراحك جميل وفي محلو

وتوقيعك آخر صيحة

،،،،

عندي شيئ محيرني .. أنا متأكد أنك أصبحت مشرفا على منتدى Visual Basic.NET ولكني لاحظت وجود كلمت خبير بدلا من مشرف ؟

ممكن تخبرنا ماذا حصل ؟

تم تعديل هذه المشاركة بواسطة seahmad في 21 مارس 2005 في 21:15

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

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

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

#17

إن شاء الله سأفعل إن أمكنني ذلك وقد يكون في أخر درس ...

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

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

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