فہرست کا خانہ
اس ٹیوٹوریل میں، ہم ایکسل میں سٹرنگز کو ملانے کے لیے ریجیکس کا استعمال کرنے کے طریقے پر گہرائی سے جائزہ لیں گے۔
جب آپ کو کسی حد میں کوئی خاص قدر تلاش کرنے کی ضرورت ہو سیلز کے، آپ MATCH یا XMATCH فنکشن استعمال کریں گے۔ سیل میں مخصوص سٹرنگ تلاش کرتے وقت، FIND اور SEARCH فنکشنز کام آتے ہیں۔ اور آپ کو کیسے پتہ چلے گا کہ اگر سیل میں ایسی معلومات موجود ہیں جو دیے گئے پیٹرن سے ملتی ہیں؟ ظاہر ہے، ریگولر ایکسپریشنز کا استعمال کرکے۔ لیکن آؤٹ آف دی باکس ایکسل ریجیکس کو سپورٹ نہیں کرتا ہے! پریشان ہونے کی کوئی بات نہیں، ہم اس پر مجبور کریں گے :)
سٹرنگز سے ملنے کے لیے ایکسل وی بی اے ریجیکس فنکشن
جیسا کہ یہ سرخی سے بالکل واضح ہے، باقاعدہ اظہار استعمال کرنے کے لیے ایکسل میں، آپ کو اپنا فنکشن خود بنانا ہوگا۔ خوش قسمتی سے، ایکسل کے VBA میں ایک ان بلٹ RegExp آبجیکٹ ہے، جسے آپ اپنے کوڈ میں استعمال کر سکتے ہیں جیسا کہ ذیل میں دکھایا گیا ہے:
پبلک فنکشن RegExpMatch(input_range As Range، پیٹرن As String، Optional match_case As Boolean = True) کے طور پر Variant Dim arRes() نتائج کو ذخیرہ کرنے کے لیے Variant ' array کے طور پر Dim iInputCurRow، iInputCurCol، cntInputRows، cntInputCols As Long' سورس رینج میں موجودہ قطار کا انڈیکس، سورس رینج میں موجودہ کالم کا انڈیکس، قطاروں کی گنتی، گنتی کالم آن ایرر GoTo ErrHandl RegExpMatch = arRes سیٹ کریں regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = پیٹرن regex.Global = True regex.MultiLine = True If True = match_case پھر = regex. True-Elseign. ختمتاثرات۔پیٹرن : \b[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\- ]*[A-Za-z0-9]+\[A-Za-z]{2,24}\b
بہتر طور پر سمجھنے کے لیے کہ یہاں کیا ہو رہا ہے، آئیے ہر ایک حصے کو قریب سے دیکھتے ہیں۔ :
- صارف نام میں حروف، اعداد، انڈر سکور، نقطے اور ہائفن شامل ہو سکتے ہیں۔ اس بات کو ذہن میں رکھتے ہوئے کہ \w کسی بھی حرف، ہندسے یا انڈر سکور سے میل کھاتا ہے، ہمیں درج ذیل ریجیکس ملتا ہے: [\w\.\-]+
- ڈومین نام میں بڑے اور چھوٹے حروف شامل ہو سکتے ہیں، ہندسے، ہائفنز (لیکن پہلی یا آخری پوزیشن میں نہیں) اور نقطے (سب ڈومینز کی صورت میں)۔ چونکہ انڈر سکور کی اجازت نہیں ہے، اس لیے \w کے بجائے ہم 3 مختلف کریکٹر سیٹ استعمال کر رہے ہیں: [A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9 ]+
- ٹاپ لیول ڈومین ایک ڈاٹ پر مشتمل ہوتا ہے جس کے بعد بڑے اور چھوٹے حروف ہوتے ہیں۔ اس میں 2 سے 24 حروف ہوسکتے ہیں (اس وقت موجود سب سے طویل TLD): \[A-Za-z]{2,24}
نوٹ۔ پیٹرن فرض کرتا ہے کہ ڈومین نام میں 2 یا اس سے زیادہ حروف عددی حروف ہیں۔
A5 میں اصل متن اور A5 میں پیٹرن کے ساتھ، فارمولہ یہ شکل اختیار کرتا ہے:
=RegExpMatch(A5, $A$2)
25>
یا آپ ایک آسان ریگولر استعمال کرسکتے ہیں چھوٹے یا بڑے حروف کے سیٹ کے ساتھ ای میل کی توثیق کے لیے اظہار:
پیٹرن : \b[\w\.\-]+@[a-z0-9]+[a- z0-9\.\-]*[a-z0-9]+\[a-z]{2,24}\b
لیکن اپنے فارمولے کو کیس غیر حساس بنائیں:
=RegExpMatch(A5, $A$2, FALSE)
ایکسل IF فارمولہ میچ ریجیکس کے ساتھ
اس حقیقت کی وجہ سے کہ ان بلٹ اور کسٹمفنکشنز اچھی طرح سے چلتے ہیں، ایسی کوئی چیز نہیں ہے جو آپ کو ایک فارمولے میں ان کو ایک ساتھ استعمال کرنے سے روکے۔
کسی چیز کو واپس کرنے یا حساب کرنے کے لیے اگر کوئی ریگولر ایکسپریشن مماثل ہے اور کچھ اور اگر یہ مماثل نہیں ہے، حسب ضرورت RegExpMatch کو ایمبیڈ کریں۔ IF کے منطقی متن میں فنکشن:
IF(RegExpMatch(…), [value_if_true], [value_if_false])مثال کے طور پر، اگر A5 میں ایک سٹرنگ ایک درست ای میل ایڈریس پر مشتمل ہے، تو آپ "ہاں" واپس کر سکتے ہیں؛ بصورت دیگر "نہیں"۔
=IF(RegExpMatch(A5, $A$2,), "Yes", "No")
ریجیکس کے مماثل ہونے پر شمار کریں
کیونکہ مقامی ایکسل فنکشنز ریگولر ایکسپریشنز کو سپورٹ نہیں کرتے، یہ ہے ریجیکس کو براہ راست COUNTIS یا COUNTIFS فنکشن میں ڈالنا ممکن نہیں ہے۔ خوش قسمتی سے، آپ ہمارے حسب ضرورت فنکشن کا استعمال کرتے ہوئے اس فعالیت کی تقلید کر سکتے ہیں۔
فرض کریں کہ آپ نے فون نمبرز کو میچ کرنے کے لیے ایک ریجیکس استعمال کیا ہے اور کالم B میں نتائج نکالے ہیں۔ یہ جاننے کے لیے کہ کتنے سیلز میں فون نمبر ہیں، آپ کو بس B5:B9 میں صحیح قدروں کو شمار کرنے کے لیے۔ اور یہ معیاری COUNTIF فارمولہ کا استعمال کرتے ہوئے آسانی سے کیا جا سکتا ہے:
=COUNTIF(B5:B9, TRUE)
اپنی ورک شیٹ میں کوئی اضافی کالم نہیں چاہتے؟ کوئی مسئلہ نہیں. اس بات کو ذہن میں رکھتے ہوئے کہ ہمارا کسٹم فنکشن ایک وقت میں ایک سے زیادہ سیلز کو پروسیس کر سکتا ہے اور Excel کا SUM ایک صف میں قدروں کو شامل کر سکتا ہے، یہاں آپ کیا کرتے ہیں:
- RegExpMatch کو رینج کا حوالہ فراہم کریں، تاکہ یہ واپس آئے TRUE اور FALSE قدروں کی صف۔
- ایک دوہری نفی (--) کا استعمال کریں اورصفر۔
- نتیجے میں 1's اور 0's کو شامل کرنے کے لیے SUM فنکشن حاصل کریں۔
=SUM(--RegExpMatch(A5:A9, $A$2))
ریجیکس مماثلت الٹیمیٹ سویٹ کے ساتھ
ہمارے الٹیمیٹ سویٹ کے صارفین اپنی ورک بک میں کوئی وی بی اے کوڈ شامل کیے بغیر چار طاقتور ریجیکس فنکشنز کا فائدہ اٹھا سکتے ہیں کیونکہ وہ ایڈ ان انسٹالیشن کے دوران آسانی سے ایکسل میں ضم ہو جاتے ہیں۔ ہمارے کسٹم فنکشنز کو معیاری .NET RegEx انجن کے ذریعے پروسیس کیا جاتا ہے اور مکمل خصوصیات والے کلاسک ریگولر ایکسپریشنز کو سپورٹ کرتے ہیں۔
کسٹم RegexMatch فنکشن کا استعمال کیسے کریں
یہ فرض کرتے ہوئے کہ آپ کے پاس Ultimate Suite کا تازہ ترین ورژن انسٹال ہے ( 2021.4 یا بعد میں)، آپ دو آسان مراحل میں Regex Match فارمولہ بنا سکتے ہیں:
- Ablebits Data ٹیب پر، Text گروپ میں، کلک کریں۔ 8 سورس سٹرنگز۔
- اپنا پیٹرن درج کریں۔
- Match آپشن کا انتخاب کریں۔
- نتائج کو فارمولوں کے طور پر حاصل کرنے کے لیے، اقدار کے طور پر نہیں، <کو منتخب کریں۔ 8>ایک فارمولہ کے طور پر داخل کریں چیک باکس۔
- Match بٹن پر کلک کریں۔
- فنک tion کو داخل کیا جاسکتا ہے براہ راست سیل میں معیاری Insert Function ڈائیلاگ باکس کے ذریعے، جہاں اسے AblebitsUDFs کے تحت درجہ بندی کیا جاتا ہے۔
- بطور ڈیفالٹ، فارمولے میں ایک ریگولر ایکسپریشن شامل کیا جاتا ہے، لیکن آپ اسے بھی رکھ سکتے ہیں۔ یہ ایک علیحدہ سیل میں ہے. اس کے لیے، صرف دوسری دلیل کے لیے سیل کا حوالہ استعمال کریں۔
- بطور ڈیفالٹ، فنکشن کیس حساس ہے۔ کیس غیر حساس مماثلت کے لیے، (؟i) پیٹرن استعمال کریں۔
ایک لمحے بعد، AblebitsRegexMatch فنکشن آپ کے ڈیٹا کے دائیں جانب ایک نئے کالم میں داخل کیا جاتا ہے۔
نیچے اسکرین شاٹ میں، فنکشن چیک کرتا ہے کہ آیا کالم A میں سٹرنگز 7 ہندسوں پر مشتمل ہیں۔ نمبرز ہیں یا نہیں۔
تجاویز:
مزید معلومات کے لیے، براہ کرم AblebitsRegexMatch فنکشن دیکھیں۔
اسی طرح ایکسل میں ریگولر ایکسپریشن میچنگ کرنا ہے۔ میں پڑھنے کے لیے آپ کا شکریہ ادا کرتا ہوں اور اگلے ہفتے آپ کو ہمارے بلاگ پر دیکھنے کا منتظر ہوں!
دستیاب ڈاؤن لوڈز
Excel Regex Match کی مثالیں (.xlsm فائل)
Ultimate Suite 14- دن مکمل طور پر فعال ورژن (.exe فائل)
کوڈ کو VBA ایڈیٹر میں چسپاں کریں، اور آپ کا نیا فنکشن RegExp ہے استعمال کے لیے تیار ہے. اگر آپ VBA کے ساتھ زیادہ تجربہ کار نہیں ہیں، تو یہ گائیڈ مددگار ثابت ہو سکتا ہے: ایکسل میں VBA کوڈ کیسے داخل کریں۔
نوٹ۔ کوڈ داخل کرنے کے بعد، اپنی فائل کو میکرو فعال ورک بک (.xlsm) کے طور پر محفوظ کرنا یاد رکھیں۔
RegExpMatch نحو
RegExpMatch فنکشن چیک کرتا ہے کہ آیا سورس سٹرنگ کا کوئی حصہ ریگولر ایکسپریشن سے میل کھاتا ہے۔ نتیجہ ایک بولین قدر ہے: اگر کم از کم ایک مماثلت پائی جاتی ہے تو درست، بصورت دیگر غلط۔
ہمارے حسب ضرورت فنکشن میں 3 دلائل ہیں - پہلے دو کی ضرورت ہے اور آخری اختیاری ہے:
RegExpMatch(text , pattern, [match_case])کہاں:
- Text (ضرورت) - تلاش کرنے کے لیے ایک یا زیادہ تار۔ سیل یا رینج کے حوالے کے طور پر فراہم کیے جا سکتے ہیں۔
- پیٹرن (مطلوبہ) - ملنے کے لیے ریگولر ایکسپریشن۔ فارمولے میں براہ راست رکھے جانے پر، ایک پیٹرن کو دوہرے اقتباسات میں بند کیا جانا چاہیے۔
- Match_case (اختیاری) - میچ کی وضاحت کرتا ہےقسم اگر TRUE یا چھوڑ دیا گیا (پہلے سے طے شدہ)، کیس حساس مماثلت انجام دی جاتی ہے۔ اگر غلط - کیس غیر حساس۔
اس سے پہلے کہ ہم عملی حساب کتاب کریں، براہ کرم درج ذیل نکات پر توجہ دیں جو کچھ تکنیکی باتوں کو واضح کرتے ہیں:
- فنکشن ایک سنگل سیل<9 پر کارروائی کرسکتا ہے۔> یا خلیوں کی حد ۔ مؤخر الذکر صورت میں، نتائج پڑوسی خلیوں میں ایک متحرک صف، یا اسپل رینج کی شکل میں واپس کیے جاتے ہیں، جیسا کہ اس مثال میں دکھایا گیا ہے۔
- بطور ڈیفالٹ، فنکشن کیس حساس ۔ ٹیکسٹ کیس کو نظر انداز کرنے کے لیے، match_case دلیل کو FALSE پر سیٹ کریں۔ VBA Regexp کی حدود کی وجہ سے، کیس غیر حساس پیٹرن (?i) تعاون یافتہ نہیں ہے۔
- اگر کوئی درست پیٹرن نہیں ملتا ہے، تو فنکشن FALSE لوٹاتا ہے۔ اگر پیٹرن غلط ہے ، ایک #VALUE! خرابی پیدا ہوتی ہے۔
ذیل میں، آپ کو کچھ ریجیکس میچ کی مثالیں ملیں گی جو مظاہرے کے مقاصد کے لیے بنائی گئی تھیں۔ ہم اس بات کی ضمانت نہیں دے سکتے کہ ہمارے پیٹرن آپ کی حقیقی ورک شیٹس میں ان پٹ ڈیٹا کی وسیع رینج کے ساتھ بے قصور کام کریں گے۔ پروڈکشن میں ڈالنے سے پہلے، اپنی ضروریات کے مطابق ہمارے نمونوں کے نمونوں کو جانچنا اور ایڈجسٹ کرنا یقینی بنائیں۔
ایکسل میں سٹرنگز کو میچ کرنے کے لیے ریجیکس کا استعمال کیسے کریں
جب آپ ان تمام سٹرنگز کو میچ کرنا چاہتے ہیں۔ ایک ہی پیٹرن،ریگولر ایکسپریشنز ایک مثالی حل ہیں۔
فرض کریں کہ آپ کے پاس سیلز کی ایک رینج (A5:A9) ہے جس میں کچھ آئٹمز کے بارے میں مختلف تفصیلات ہیں۔ آپ جاننا چاہتے ہیں کہ کن سیلوں میں SKUs ہیں۔ یہ فرض کرتے ہوئے کہ ہر SKU 2 بڑے حروف، ایک ہائفن اور 3 ہندسوں پر مشتمل ہوتا ہے، آپ درج ذیل اظہار کا استعمال کرتے ہوئے ان کا مقابلہ کر سکتے ہیں۔
پیٹرن : \b[A-Z]{2}-\ d{3}\b
جہاں [A-Z]{2} کا مطلب ہے A سے Z تک کوئی 2 بڑے حروف اور \d{3} کا مطلب ہے 0 سے 9 تک کوئی بھی 3 ہندسے۔ \b حرف ایک لفظ کو ظاہر کرتا ہے باؤنڈری، یعنی SKU ایک الگ لفظ ہے، اور 23-MAR-2022 جیسے بڑے سٹرنگ کا حصہ نہیں ہے۔
پیٹرن قائم ہونے کے ساتھ، ہم فارمولہ لکھنے کی طرف بڑھ سکتے ہیں۔ بنیادی طور پر، اپنی مرضی کے مطابق فنکشن کا استعمال مقامی سے مختلف نہیں ہے۔ جیسے ہی آپ فارمولہ ٹائپ کرنا شروع کریں گے، فنکشن کا نام ایکسل کے آٹوکمپلیٹ کی تجویز کردہ فہرست میں ظاہر ہوگا۔ تاہم، Dynamic Array Excel (Microsoft 365 اور Excel 2021) اور روایتی Excel (2019 اور پرانے ورژنز) میں کچھ باریکیاں ہیں۔
ایک سیل میں سٹرنگ کو میچ کریں
سٹرنگ سے مماثل ہونا ایک سیل میں، پہلی دلیل میں اس سیل کا حوالہ دیں۔ سمجھا جاتا ہے کہ دوسری دلیل ایک ریگولر ایکسپریشن پر مشتمل ہے۔
=RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")
پیٹرن کو پہلے سے طے شدہ سیل میں بھی رکھا جاسکتا ہے، جو ایک مطلق حوالہ ($A$2):<3 کے ساتھ مقفل ہے۔
=RegExpMatch(A5, $A$2)
پہلے سیل میں فارمولہ داخل کرنے کے بعد، آپ اسے دیگر تمام قطاروں میں نیچے گھسیٹ سکتے ہیں۔
یہ طریقہ تمام ایکسل ورژنز میں خوبصورتی سے کام کرتا ہے۔
ایک ہی وقت میں ایک سے زیادہ سیلز میں سٹرنگز کو میچ کریں
ایک فارمولے کے ساتھ متعدد سٹرنگز کو ملانے کے لیے، پہلی دلیل میں رینج کا حوالہ شامل کریں:
=RegExpMatch(A5:A9, "\b[A-Z]{2}-\d{3}\b")
Excel 365 اور Excel 2021 میں جو متحرک صفوں کو سپورٹ کرتے ہیں، یہ اس طرح کام کرتا ہے۔ آپ پہلے سیل میں فارمولہ ٹائپ کرتے ہیں، Enter کو دباتے ہیں، اور فارمولہ خود بخود نیچے کے سیلز میں پھیل جاتا ہے۔
Excel 2019 اور اس سے پہلے، یہ صرف روایتی CSE ارے فارمولے کے طور پر کام کرتا ہے، جو سیلز کی ایک رینج میں داخل ہوتا ہے اور Ctrl + Shift + Enter کیز کو ایک ساتھ دبانے سے مکمل ہوتا ہے۔
نمبر سے ملنے کے لیے ریجیکس
0 سے 9 تک کسی ایک ہندسے کو ملانے کے لیے، ریجیکس میں \d حرف استعمال کریں۔ اپنے مخصوص کام پر منحصر ہے، ایک مناسب کوانٹیفائر شامل کریں یا زیادہ پیچیدہ پیٹرن بنائیں۔
کسی بھی نمبر سے مماثل ہونے کے لیے Regex
کسی بھی لمبائی کے کسی بھی نمبر سے ملنے کے لیے، + کوانٹیفائر کو دائیں / کے بعد لگائیں۔ d حرف، جو کہتا ہے کہ 1 یا زیادہ ہندسوں پر مشتمل نمبرز تلاش کریں۔
پیٹرن : \d+
=RegExpMatch(A5:A9, "\d+")
10 بلکل 7 ہندسوں پر مشتمل انوائس نمبرز سے ملنے کے لیے، آپ \d{7} استعمال کریں گے۔ تاہم، براہ کرم ذہن میں رکھیں کہ یہ 7 سے مماثل ہوگا۔جیسا کہ توقع کی جاتی ہے:
نوٹس:
- بین الاقوامی کوڈز کو چیک نہیں کیا گیا ہے، اس لیے وہ موجود بھی ہو سکتے ہیں یا نہیں بھی۔
- ریگولر ایکسپریشنز میں، \s کا مطلب کسی بھی وائٹ اسپیس کریکٹر جیسے اسپیس، ٹیب، کیریج ریٹرن، یا نئی لائن ہے۔ صرف خالی جگہوں کی اجازت دینے کے لیے، استعمال کریں [-\. ] کی بجائے [-\.\s]۔
- [^13] کسی بھی ایک حرف سے مماثل ہوگا جو 1 یا 3 نہیں ہے۔
- [^1-3] کسی ایک حرف سے مماثل ہوگا جو 1 نہیں ہے، 2 یا 3 (یعنی 1 سے 3 تک کوئی بھی ہندسہ)۔
- مذکورہ ریجیکس صرف سنگل لائن تاروں کے لیے کام کرتا ہے۔ ملٹی لائن سٹرنگز کی صورت میں، ^ اور $ حروف ان پٹ سٹرنگ کے آغاز اور اختتام کے بجائے ہر لائن کے آغاز اور اختتام سے ملتے ہیں، اس لیے ریجیکس صرف پہلی لائن میں تلاش کرتا ہے۔
- ان تاروں کو ملانے کے لیے جو شروع نہ ہوں مخصوص متن کے ساتھ ، ایک ریگولر ایکسپریشن جیسے ^(?!lemons) کا استعمال کریں۔*$
- ان تاروں کو ملانے کے لیے جو ختم نہیں ہوتے مخصوص متن کے ساتھ ، شامل کریں۔تلاش کے پیٹرن میں اختتامی سٹرنگ اینکر: ^((?!lemons$).)*$
ریجیکس ٹو ناٹ میچ کریکٹر
ایسے تاروں کو تلاش کرنے کے لیے جن میں کوئی خاص حرف نہ ہو، آپ مماثل کریکٹر کلاسز [^ ] استعمال کر سکتے ہیں کچھ بھی جو بریکٹ میں نہیں ہے۔ مثال کے طور پر:
فون نمبروں کی فہرست میں، فرض کریں کہ آپ ان نمبروں کو تلاش کرنا چاہتے ہیں جن کے پاس ملک کا کوڈ نہیں ہے۔ اس بات کو ذہن میں رکھتے ہوئے کہ کسی بھی بین الاقوامی کوڈ میں + نشان شامل ہوتا ہے، آپ ایسے تاروں کو تلاش کرنے کے لیے [^\+] کریکٹر کلاس استعمال کر سکتے ہیں جن میں جمع کا نشان نہ ہو۔ یہ سمجھنا ضروری ہے کہ مذکورہ بالا اظہار کسی ایک حرف سے میل کھاتا ہے جو + نہیں ہے۔ چونکہ ایک فون نمبر سٹرنگ میں کہیں بھی ہوسکتا ہے، ضروری نہیں کہ بالکل شروع میں، * کوانٹیفائر ہر بعد کے کردار کو چیک کرنے کے لیے شامل کیا جاتا ہے۔ start ^ اور end $ اینکرز اس بات کو یقینی بناتے ہیں کہ پوری اسٹرنگ پر کارروائی کی گئی ہے۔ نتیجے کے طور پر، ہمیں ذیل میں ریگولر ایکسپریشن ملتا ہے جو کہتا ہے کہ "سٹرنگ میں کسی بھی پوزیشن میں + کریکٹر سے مماثل نہیں ہے۔"
پیٹرن :^[^\+]*$
=RegExpMatch(A5, "^[^\+]*$")
ریجیکس ٹو ناٹ میل سٹرنگ
حالانکہ اس کے لیے کوئی خاص ریگولر ایکسپریشن نحو نہیں ہے کسی مخصوص سٹرنگ سے مماثل نہ ہونے کی صورت میں، آپ منفی نظر کا استعمال کرکے اس رویے کی تقلید کر سکتے ہیں۔
فرض کریں کہ آپ ایسی تاریں تلاش کرنا چاہتے ہیں جن میں لفظ "لیموں" شامل نہ ہو ۔ یہ ریگولر ایکسپریشن ایک علاج کا کام کرے گا:
Pattern : ^((?!lemons).)*$
ظاہر ہے، یہاں کچھ وضاحت درکار ہے۔ یہ دیکھنے کے لیے کہ آیا آگے کوئی لفظ "لیموں" نہیں ہے، منفی نظر (؟! لیموں) دائیں طرف دیکھتا ہے۔ اگر "لیموں" نہیں ہے، تو نقطہ لائن کے وقفے کے علاوہ کسی بھی حرف سے میل کھاتا ہے۔ مندرجہ بالا اظہار صرف ایک چیک کرتا ہے، اور * کوانٹیفائر اسے صفر یا اس سے زیادہ بار دہراتا ہے، ^ کے ذریعے اینکر کی گئی سٹرنگ کے آغاز سے لے کر $ کے ذریعے اینکر کی گئی سٹرنگ کے اختتام تک۔
ٹیکسٹ کیس کو نظر انداز کرنے کے لیے، ہم اپنے فنکشن کو کیس غیر حساس بنانے کے لیے 3ویں دلیل کو FALSE پر سیٹ کرتے ہیں:
=RegExpMatch(A5, $A$2, FALSE)
تجاویز اور نوٹ:
کیس غیر حساس مماثلت
کلاسک ریگولر ایکسپریشنز میں، اس کے لیے ایک خاص پیٹرن ہوتا ہے۔ کیس غیر حساس مماثلت (؟i)، جو VBA RegExp میں تعاون یافتہ نہیں ہے۔ اس حد کو دور کرنے کے لیے، ہمارا کسٹم فنکشن تیسرے اختیاری دلیل کو قبول کرتا ہے جس کا نام match_case ہے۔ کیس غیر حساس میچنگ کرنے کے لیے، اسے صرف FALSE پر سیٹ کریں۔
آئیے کہتے ہیں کہ آپ تاریخوں کی شناخت کرنا چاہتے ہیں جیسے کہ 1-مارچ-22 یا 01-مار-2022۔ dd-mmm-yyyy اور d-mmm-yy فارمیٹس سے ملنے کے لیے، ہم درج ذیل ریگولر ایکسپریشن استعمال کر رہے ہیں۔
پیٹرن : \b\d{1,2}-(جنوریسٹرنگ میں کہیں بھی ہندسے بشمول 10 ہندسوں یا 100 ہندسوں کا نمبر۔ اگر یہ وہ نہیں ہے جس کی آپ تلاش کر رہے ہیں، لفظ باؤنڈری \b کو دونوں طرف رکھیں۔
پیٹرن : \b\d{7}\b
=RegExpMatch(A5, $A$2, FALSE)
فون نمبرز کو مماثل کرنے کے لیے Regex
چونکہ فون نمبر مختلف فارمیٹس میں لکھے جاسکتے ہیں، اس لیے ان کے ملاپ کے لیے زیادہ نفیس ریگولر ایکسپریشن کی ضرورت ہوتی ہے۔
<0 ذیل کے ڈیٹاسیٹ میں، ہم 10 ہندسوں والے نمبرز تلاش کریں گے جن کے پہلے 2 گروپس میں 3 ہندسے اور آخری گروپ میں 4 ہندسے ہوں گے۔ گروپوں کو مدت، ہائفن یا اسپیس کے ساتھ الگ کیا جا سکتا ہے۔ پہلا گروپ قوسین میں بند ہو سکتا ہے یا نہیں۔پیٹرن: (\(\d{3}\)