VBA RegEx | وی بی اے ایکسل میں باقاعدہ اظہار کس طرح استعمال کریں؟ (مثالوں)

ایکسل VBA میں RegEx کیا ہے؟

ریگ ایکس کا مطلب ہے “باقاعدہ اظہار"وی بی اے ایکسل میں اور حروف کا ایک سلسلہ ہے جو قدروں کی ایک تار میں حرفوں کے ایک مخصوص نمونہ کو تلاش کرنے کے لئے سرچ پیٹرن کی وضاحت کرتا ہے۔ ایک سادہ لفظ میں "ہم ایک باقاعدہ اظہار کا نمونہ تشکیل دے سکتے ہیں اور اس نمونہ کے تار کی تلاش کے ل. اسے استعمال کرسکتے ہیں"۔

VBA RegEx ایک آبجیکٹ ماڈل ہے۔ میں جانتا ہوں کہ وضاحت دیکھ کر یہ ڈرا رہا ہے لیکن بات یہ ہے کہ اعتراض کی نوعیت ہے۔ ایک چیز جو آپ کو یہاں یاد رکھنے کی ضرورت ہے وہ ہے VBA RegEx (Regular Expression) ایک ٹیکسٹ فنکشن آبجیکٹ ہے جیسے ہمارے دوسرے ٹیکسٹ افعال "بائیں ، دائیں ، وسط" کی طرح ہے۔

ایکسل VBA میں RegEx کو کیسے فعال کیا جائے؟

جیسا کہ میں نے بتایا تھا کہ VBS میں RegEx ہمارے بیرونی سوفٹ ویئر جیسے "MS ورڈ" اور "MS PowerPoint" کی طرح VBA میں ایک آبجیکٹ ماڈل ہے۔ اسی طرح ، RegEx ایک اجزاء آبجیکٹ ماڈل (COM) بھی ہے جس کا ہمیں VBA ایڈیٹر میں حوالہ کرنے کی ضرورت ہے۔ RegEx کو اہل بنانے کیلئے ، درج ذیل مراحل پر عمل کریں۔

مرحلہ نمبر 1: بصری بنیادی ایڈیٹر (Alt + F11) پر جائیں

مرحلہ 2: ٹولز اور حوالہ جات پر جائیں۔

مرحلہ 3: اب آپ وی بی اے پروجیکٹ کے حوالے دیکھیں گے۔ نیچے سکرول کریں اور "مائیکروسافٹ VBScript باقاعدگی سے اظہار 5.5" منتخب کریں۔

مرحلہ 4: اب اوکے پر کلک کریں۔ ہم اب VBA کوڈنگ میں اس RegEx آبجیکٹ تک رسائی حاصل کرسکتے ہیں۔

مثال - اب میں آپ کو ایک آسان مثال پیش کروں گا۔ فرض کریں کہ آپ کے پاس "سیلز 2019 ، سیلز 2018 ، اور سیلز 2017" الفاظ ہیں۔ اگر آپ پیٹرن کی وضاحت [0 - 7] کرتے ہیں تو یہ 0 سے 7 کے درمیان تمام نمبروں سے میل کھاتا ہے ، لہذا ہمارے میچ ہر سٹرنگ میں 201 ، 201 اور 2017 ہوں گے۔

وی بی اے ریگیکس پیٹرن

وی بی اے ریگیکس فنکشن کا نمونہ خوفناک لگتا ہے اور پیٹرن کو سمجھنے میں کچھ وقت لگتا ہے۔ ہم یہاں دو طرح کے حروف کی ترتیب دیکھ سکتے ہیں ایک ہے "لٹریکل کریکٹر" اور دوسرا "میٹاچارٹر"۔

  • لفظی کردار فراہم کردہ تار کے عین مطابق میچ کی تلاش کریں۔ مثال کے طور پر ، لفظی کردار کی ترتیب "EFG" فراہم کردہ متن میں صرف "EFG" کے تمام میچ تلاش کرتا ہے۔
  • میٹاچارٹرس RegEx پیٹرن میں قطعی معنی رکھنے والے حرفوں کے مجموعے کے سوا کچھ نہیں ہے۔ اس سے بالکل مختلف ہے لفظی کردار یہ احاطہ کرنے کے لئے ایک بہت بڑا عنوان ہے ، ذیل میں کچھ اہم نحو ذیل ہیں۔
نحوتفصیلمثالمثال کے طور پر میچ
.یہ ان پٹ سٹرنگ کے کسی ایک کردار سے میل کھاتا ہےp.tپالتو جانور برتن ، ڈال ، پیٹرن
[]یہ کسی ان پٹ سٹرنگ کے بریکٹ کے درمیان کسی ایک حرف سے مماثل ہے[pt]یہ پی یا ٹی سے میل کھاتا ہے
[^]یہ کسی بھی ایک حرف سے میل کھاتا ہے ، ان پٹ سٹرنگ کے بریکٹ کے درمیان نہیں[^ pt]یہ پی یا ٹی میں نہ تو میل کھاتا ہے
[پہلا آخری]یہ بریکٹ میں فراہم کردہ حد کے درمیان کسی بھی کردار سے میل کھاتا ہے[0-9]یہ 0 سے 9 تک کے کسی بھی ہندسے سے ملتا ہے
[a-z]یہ ایک سے z تک کے کسی بھی چھوٹے کیس سے ملتا ہے
[A-Z]یہ A سے Z تک اپر کیس کے کسی بھی کردار سے میل کھاتا ہے
. sیہ کسی بھی سفید جگہ کے حرف سے مماثل ہےجگہ ، نئی لائن ، یا ٹیب کیریکٹر سے میچ کرتا ہے
. ایسیہ کسی بھی غیر سفید جگہ کے حرف سے مماثل ہےمماثلت والے حرف خلائی نہیں ، نئی لائن نہیں ، یا ٹیب کیریکٹر نہیں ہیں
dیہ کسی ایک ہندسوں کے حرف سے مماثل ہےایس ای 5 وی جی 6میچ 5 اور 6
. Dیہ کسی بھی نونڈجٹ کردار سے ملتا ہےایس ای 5 وی جی 6SEVG سے میل کھاتا ہے

ریگیکس آبجیکٹ کی خصوصیات اور طریقے

ہمارے سبھی آبجیکٹ ماڈلز کی طرح RegEx کی بھی اپنی خصوصیات اور طریقے ہیں۔ اب ہم ایک ایک کرکے تفصیل سے دیکھیں گے۔

VBA Regex آبجیکٹ کی خصوصیات

  • پیٹرن: یہ فراہم کردہ تار سے ملنے کے لئے استعمال ہوتا ہے۔
  • نظرانداز کریں: یہ بڑے اور چھوٹے حرفوں کو نظر انداز کرنا ہے۔
  • عالمی: اگر آپ تمام میچز کو پیٹرن میں ڈھونڈنا چاہتے ہیں تو سچ ہی دلیل ہے ورنہ پہلا میچ مل جائے گا۔
  • ملٹی لائن: اگر آپ نئی لکیر کے وقفے تلاش کرنا چاہتے ہیں تو آپ اسے استعمال کرسکتے ہیں۔

ریگیکس آبجیکٹ کے طریقے

  • پرکھ: اس کی جانچ کرنا ہے کہ فراہم کردہ اسٹرنگ میں پیٹرن پایا جاسکتا ہے یا نہیں۔ یہ سچ ملے تو لوٹ آئے گا ورنہ غلط۔
  • عملدرآمد: یہ فائنڈنگ سٹرنگ کے خلاف پیٹرن کے سبھی میچز لوٹائے گا۔
  • تبدیل کریں: یہ سرچ تار کو نئی تار کے ساتھ بدل دے گا۔

VBA ایکسل میں RegEx کی مثال

اب نیچے دیئے گئے مثال VBA کوڈ پر ایک نظر ڈالیں۔

آپ یہ VBA RegEx Excel سانچہ ڈاؤن لوڈ کرسکتے ہیں۔ VBA RegEx ایکسل ٹیمپلیٹ

کوڈ:

 سب RegEx_Example () ڈم RegEx آبجیکٹ کے طور پر ، MyString اسٹرنگ سیٹ RegEx = CreateObject ("VBScript.RegExp") کے ساتھ RegEx. پیٹرن = "[0-9] +" MyString کے ساتھ اختتام = "تاریخ پیدائش 1985 ہے" MsgBox RegEx .ٹیسٹ (مائی اسٹریننگ) مائی اسٹریننگ = "تاریخ پیدائش سال ہے ؟؟؟" MsgBox RegEx.Test (MyString) اختتام سب 

غیر معمولی

مندرجہ بالا کوڈ میں ، ہم نے 0 سے 9 تک نمبر تلاش کرنے کے لئے نمونہ ترتیب دیا ہے۔

 RegEx کے ساتھ۔ پیٹرن = "[0-9] +" اختتام کے ساتھ 

پھر متغیر MyString = "تاریخ پیدائش سال 1985 ہے" جس میں 0 سے 9 تک کی قدر ہوتی ہے ، لہذا ہمارا پیغام خانہ صحیح ہوگا۔

MyString = "تاریخ پیدائش سال ہے ؟؟؟" 0 سے 9 تک کی کوئی تعداد نہیں ہے لہذا پیغام خانوں کے نتیجے میں FALSE لوٹائے گا۔