VBA RegEx | كيفية استخدام التعبير العادي في VBA Excel؟ (أمثلة)

ما هو RegEx في Excel VBA؟

يرمز RegEx إلى " التعبير العادي " في VBA Excel وهو عبارة عن سلسلة من الأحرف التي تحدد نمط البحث للعثور على نمط معين من الأحرف في سلسلة من القيم. بكلمة بسيطة "يمكننا إنشاء نمط تعبير عادي واستخدامه للبحث عن سلسلة ذلك النمط".

VBA RegEx هو نموذج كائن. أعلم أنه أمر مخيف بالنظر إلى التفسير ولكن الشيء هو أن طبيعة الشيء. شيء واحد يجب أن تتذكره هنا هو VBA RegEx (التعبير العادي) وهو كائن دالة نصية مثل وظائف النص الأخرى "LEFT ، RIGHT ، MID".

كيفية تمكين RegEx في Excel VBA؟

كما أخبرت VBA RegEx هو نموذج كائن في VBA تمامًا مثل برنامجنا الخارجي مثل "MS Word" و "MS PowerPoint". وبالمثل ، فإن RegEx هو أيضًا نموذج كائن مكون (COM) نحتاج إلى الرجوع إليه في محرر VBA. لتمكين RegEx ، اتبع الخطوات التالية.

الخطوة 1: انتقل إلى محرر Visual Basic (Alt + F11)

الخطوة 2: اذهب إلى الأدوات والمراجع.

الخطوة 3: الآن سترى مراجع لمشروع VBA. مرر لأسفل وحدد "Microsoft VBScript Regular Expression 5.5"

الخطوة 4: الآن انقر فوق "موافق". يمكننا الوصول إلى كائن RegEx هذا الآن في ترميز VBA.

مثال - الآن سأريكم مثالاً بسيطاً. افترض أن لديك الكلمات "المبيعات 2019 ، والمبيعات 2018 ، والمبيعات 2017". إذا قمت بتعريف النمط على أنه [0 - 7] فإنه يطابق جميع الأرقام بين 0 إلى 7 ، لذلك ستكون المطابقات لدينا 201 و 201 و 2017 في كل سلسلة.

نمط VBA RegEx

يبدو نمط وظيفة VBA RegEx مخيفًا ويستغرق بعض الوقت لفهم النمط. يمكننا أن نرى نوعين من تسلسل الأحرف هنا أحدهما "الأحرف الحرفية" والآخر "الأحرف الأولية".

  • تقوم الأحرف الحرفية بالبحث عن المطابقة التامة للسلسلة المقدمة. على سبيل المثال ، فإن تسلسل الأحرف الحرفية "EFG" يبحث ببساطة عن جميع تطابقات "EFG" في النص المقدم.
  • الحروف الأولية ليست سوى مجموعة من الأحرف ذات المعنى الدقيق في نمط RegEx. هذا مختلف تمامًا عن الأحرف الحرفية. إنه موضوع ضخم يجب تغطيته ، فيما يلي بعض التراكيب المهمة.
بناء الجملة وصف مثال تطابق المثال
. يطابق أي حرف واحد من سلسلة الإدخال نقطة حيوان اليف. وعاء ، وضع ، نمط
[] يطابق أي حرف واحد بين قوس سلسلة الإدخال [نقطة] يطابق إما p أو t
[^] إنه يطابق أي حرف واحد ، وليس بين قوس سلسلة إدخال [^ نقطة] لا يتطابق مع p أو t
[اول الاخر] يطابق أي حرف بين النطاق المقدم بين القوسين [0-9] يتطابق مع أي رقم من 0 إلى 9
[az] يتطابق مع أي حرف صغير من الألف إلى الياء
[من الألف إلى الياء] يطابق أي حرف كبير من الألف إلى الياء
يطابق أي حرف مسافة بيضاء - يطابق المسافة أو الخط الجديد أو حرف الجدولة
يتطابق مع أي حرف غير ذي مساحة بيضاء - أحرف التطابقات ليست مسافة أو سطر جديد أو ليست حرف جدولة
يتطابق مع أي حرف من رقم واحد SE 5 VG 6 المباريات 5 و 6
يتطابق مع أي حرف واحد غير رقم SE 5 VG 6 المباريات SEVG

خصائص وطرق كائن RegEx

مثل جميع نماذج الكائنات لدينا ، فإن RegEx أيضًا له خصائصه وطرقه الخاصة. الآن سنرى واحدًا تلو الآخر بالتفصيل.

خصائص كائن VBA Regex

  • النمط: يستخدم لمطابقة السلسلة المتوفرة.
  • تجاهل الحالة: هذا لتجاهل الأحرف الكبيرة والصغيرة.
  • Global: إذا كنت تريد البحث عن جميع التطابقات في النمط ، فإن TRUE هي الوسيطة وإلا فسيتم العثور على أول تطابق.
  • متعدد الأسطر: إذا كنت ترغب في العثور على فواصل أسطر جديدة ، يمكنك استخدام هذا.

طرق كائن RegEx

  • الاختبار: هذا لاختبار ما إذا كان يمكن العثور على النمط في السلسلة المتوفرة. سيؤدي هذا إلى إرجاع TRUE إذا تم العثور عليها أو FALSE.
  • التنفيذ: سيؤدي هذا إلى إرجاع جميع تطابقات النمط مقابل سلسلة البحث.
  • استبدال: سيؤدي هذا إلى استبدال سلسلة البحث بالسلسلة الجديدة.

مثال على RegEx في VBA Excel

ألقِ نظرة الآن على رمز VBA المثال أدناه.

يمكنك تنزيل قالب VBA RegEx Excel هذا هنا - قالب VBA RegEx Excel

رمز:

RegEx_Example () خافت RegEx ككائن ، MyString As String Set RegEx = CreateObject ("VBScript.RegExp") مع RegEx .Pattern = "[0-9] +" End With MyString = "تاريخ الميلاد سنة 1985" MsgBox RegEx .Test (MyString) MyString = "تاريخ الميلاد عام ؟؟؟" MsgBox RegEx.Test (MyString) End Sub

fregular

في الكود أعلاه ، قمنا بتعيين النمط للبحث عن الرقم من 0 إلى 9 على النحو التالي.

 مع RegEx .Pattern = "[0-9] +" ينتهي بـ 

ثم المتغير MyString = "تاريخ الميلاد سنة 1985" وهذا يحمل القيم من 0 إلى 9 ، لذلك سيعود مربع رسالتنا TRUE

MyString = "تاريخ الميلاد سنة ؟؟؟" لا يحتوي على أي أرقام من 0 إلى 9 لذلك سيعود FALSE كنتيجة مربعات الرسائل.