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

سلسلة تعلم Regular Expressions

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

السلام عليكم

الدرس الثاني : Matching Characters مقارنة أو مطابقة الحروف ( على اعتبار أن character تترجم حرف بالعربية )

مدة الدرس 6 دقائق والله أعلم . فقط حاول التركيز خمسة دقائق لتبدع طول العمر إن شاء الله

ينقسم هذا الدرس إلى ثلاثة أجزاء مختصرة وسهلة للغاية .

الجزء الأول : Matching Single Characters البحث عن حرف واحد معين .

في الحقيقة هذا اسهل شيء مر علي في الـ regex حيث إذا كنت تبحث عن حرف معين أو رقم معين

فقط قم بكتابةِ صراحةً اي بهذا الشكل : a أو 5 شاهد المثال

Const OnlyOneLetterRX As String = "a"

حتى لو كان مع حرف الـ a حروف أخرى أو أرقام أو كان أولهم أو أوسطهم أو أخرهم , المهم أن a معهم .

الجزء الثاني : Matching any Characters مطابقة اي حرف أو أي رقم

ماذا لو كنت تريد البحث عن الحرف a مع حرف أخر أو أكثر بشرط أن لا يقل عن حرف واحد أو رقم واحد

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

أي أن بعد الحرف a تريد أن يكون ولو رقم أو حرف واحد أو أكثر .

فهنا تأتي الاداة النقطة . Period لتحقق لنا ذلك .

تعريف النقطة . : هي أداة تنوب عن خانة واحدة فقط اي كانت هذه الخانة ستتضمن, سواءً حرف أو رقم أو رمز

وهي أداة شرطية بحيث إذا تضمنت داخل الـ Regex فلابد أن ينوب عنها قيمة لتتم المطابقة.

مثالُ ذلك .

  Const LetterAandAnyRX As String = "a."

في هذه الحالة التطابق يمكن أن يكون aa أو aaa لكن ليس a

لماذا ليست a لوحدها لآننا لتو ذكرنا أن اداة النقطة . تنوب عن خانة واحده فقط وهي شرطية .

ونحن في المتغير LetterAandAnyRX كتبنا أن الحرف a يليه أي علامة أو حرف

لذلك لابد كشرط أن يكتب شيء بدل النقطة حتى ولو مسافة Space لتتم عملية المطابقة .

الجزء الثالث و الأخير في هذا الدرس هو مطابقة أحرف خاصه Matching Special Characters

مالذي يعنية القسم الثالث مطابقة أحرف خاصة تذكر النقطة التي ذكرناها في الجزء الثاني !!

لو إفترضنا أنك تريد مطابقة القيمة التالية

 15.00

هل تلاحظ النقطة بعد الرقم 5 ؟

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

ففي هذا الحالة يسعفنا البطل المغوار \ Backslash ليخبر Regex أن الذي يلي الـ \ ليست تابعة لك .

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

للتحقق منها وليس بها , اي للتحقق هل النقطة موجودة بين القيمة المذكورة أعلاه .

على سبيل المثال :

   Const NumbersWithPeriodRX As String = "15\.00"

أخيراً هل تعلم أن البطل \ Backslash يستطيع مساعدة نفسه بنفسه ليتخطى الـ Regex مثلاً لو أردنا أن نقول بسط على مقام

رقم على أخر يكون كالتالي "1\\2" كعملية مزدوجة له ليدرك Regex أن المراد هو \ كأداة رياضية

وليست كأداة تطابقية خاضعة لـ Regex لانه الـ \ Backslash أداة من أدوات Regex

وهنا سؤال يطرح نفسه : في ماذا يستخدم Regex الأداة \ Backslash ؟

علماً أن الجواب موجود في سياق الشرح .

أو بمعنى أخر تستطيع أن تعرف لنا أخي الكريم الأداة \ Backslash ؟

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

MatchingCharacters.zip

1

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

#2

ماشاء الله .. ثبتك الله أخي .. دروسك قوية بدورة سريعة

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

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

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

#3

السلام عليكم أحسن الله إليك أخي seahmad وبارك الله فيك

كان سيسعدني أكثر لو وجدت جواباً لسؤالي فلماذا أخي لم تحاول الإجابة على السؤال ؟

أقصد الذي في الدرس *&* حاول حتى نستفيد

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

#4

بارك الله فيك أخي الغملاسي على هذا الشرح ..

بخصوص علامة \ Backslash فإنها تقوم بإلغاء وظيفة الحرف الذي يليها إذا كان معاملاً خاصاً بالـ Regex

مثلاً معامل النقطة (.) يعني أي حرف .. وإذا وضعنا قبله \ Backslash فإنه يعني أننا نريد حرف النقطة نفسه، وليس المعامل الذي ينوب عن أي حرف .. وكذلك الحال بالنسبة لبقية المعاملات ..

أتمنى لك التوفيق ومواصلة هذه الدروس ...

ani.gif
#5

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

فعلاً وجبة سهلة الهضم

:)

#6

الاخ العزيز الغملاسي , وفقك الله

ساقوم بارفاق ملف يحتوي علي Regex Library وهو من الملفات التي مازلت أحتفظ بها لاهميتها الشديدة وفي إعتقادي أن هذا الملف سيساعدك كثيرا علي مجهودك الطيب في تقديم هذه الدروس وأتمني ألا تقل هذه المشاركات والدروس علي أساس هذا الملف , هنالك بعض الاخوه الاعضاء يحتاجون الي مثل هذه الشروحات لترسيخ المعلومة

والله الموفق

#7

عذرا ولكن هنالك مشكلة في ارفاق الملفات للموقع ؟؟ لا أدري مالخطأ ولكني ساحاول ارفاق الملف مرة أخري في خلال هذه اليوم إن شاء الله

تظهر لي في معلومات المرفقات :

المرفقات

الحجم المتبقي للمرفق: مساحة غير محددة

مامعني هذا ؟؟ ولا يتم رفع الملف ولا توجد رسالة خطأ ؟؟

تم تعديل هذه المشاركة بواسطة Ammar Gaffar في 5 مارس 2005 في 09:02

#8

اخيرا تم ارفاق الملف ويحتوي علي المواضيع التالية :

• Exactly-One-Digit Checker

• Real Number Matcher

• Alphanumerical Matcher: No Spaces or Dots

• 24-Hour Clock Time Check

• Identifying Valid Dates

• File Path and Extension Check

• Checking for Repeated Words

• Getting Capitalized Words

• Matching Numbers from a String

• Who Are You?—Name Checker

• Naughty-Word Filter Expression

• True Email Address Validation

• Validating a Web Site Address

• Internet URL Matcher: FTP, HTTP, HTTPS

• Checking for a Valid Domain

• IP Address Checker

• Extracting Links and Images from HTML

• Checking HTML Color Codes

• Credit Card Validation

• Password Format Enforcing Expression

• Defining Your Own HTML: Custom Tags, with Expressions

• ISBN Checker

• Is That a GUID?

• U.S. ZIP Code Checker

• U.S. Social Security Number Checker

• U.S. Phone Number Checker

• U.S. State Checker

• U.K. Postal Code Matcher

• U.K. National Insurance Number Check

• U.K. Telephone Number Validator

• Converting American and British Dates

• French, German, and Japanese Expressions

• The Simple Cure for “Loose” Expressions

والله الموفق

Your_Regex_Library.doc

تم تعديل هذه المشاركة بواسطة Ammar Gaffar في 5 مارس 2005 في 11:27

1
#9

السلام عليكم

الاستاذ : عبد الله فتحي أحسنت الجواب و إنت نارٌ على علم

البحر : محمد النحراوي كلماتك شهاداتٌ للجميع و أيُ شهادة

أخي الطيب Ammar Gaffar اشكرك من كل قلبي على هذه المكتبة الضخمة التي سنعول على الكثير من امثلتها

السلام عليكم

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

#10

سلمت يداك أخي الكريم

other ESTJ thing

اقتباس
Help Me To Help You

0xBAD00DAD.png

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

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