مواد جي جدول
هن سبق ۾، توهان سيکاريندا سين ته Excel ۾ ريگيولر ايڪسپريشن کي ڪيئن استعمال ڪجي هڪ ڏنل نموني سان ملندڙ سب اسٽرنگ ڳولڻ ۽ ڪڍڻ لاءِ.
Microsoft Excel متن ڪڍڻ لاءِ ڪيترائي ڪم مهيا ڪري ٿو. سيلز مان. اهي فنڪشن توهان جي ورڪ شيٽ ۾ اڪثر اسٽرنگ ڪڍڻ واري چئلينج کي منهن ڏئي سگهن ٿا. گهڻا، پر سڀ نه. جڏهن ٽيڪسٽ افعال ٿڪجي ويندا آهن، باقاعده اظهار بچاء لاء ايندا آهن. انتظار ڪريو... Excel ۾ ڪو به RegEx ڪم ناهي! سچ، ڪو به inbuilt فنڪشن. پر اتي ڪجھ به نه آھي جيڪو توھان کي توھان جي پنھنجي استعمال ڪرڻ کان روڪيو :)
Excel VBA Regex function strings extract
پنھنجي Excel ۾ ڪسٽم ريجڪس Extract فنڪشن شامل ڪرڻ لاءِ، VBA ايڊيٽر ۾ ھيٺ ڏنل ڪوڊ پيسٽ ڪريو. VBA ۾ ريگيولر ايڪسپريشنز کي فعال ڪرڻ لاءِ، اسان استعمال ڪري رھيا آھيون بلٽ ان Microsoft RegExp اعتراض.
Public Function RegExpExtract(text As String , pattern As String , Optional instance_num As Integer = 0، Optional match_case As Boolean = True ) Dim text_matches() As String Dim matches_index As Integer On Error GoTo ErrHandl RegExpExtract = "" سيٽ ڪريو regex = CreateObject ("VBScript.RegExp") regex.pattern = pattern regex.Global = True regex.MultiLine = True_Line پوءِ. ignorecase = غلط ٻي صورت ۾ regex.ignorecase = صحيح پڇاڙي جيڪڏهن سيٽ ڪريو ميچز = regex.Execute(text) جيڪڏهن 0 < matches.Count پوءِ If (0 = instance_num) پوءِ ريڊيم text_maches(match.Count - 1, 0) matches_index = 0 لاءِVBA RegExp، مان توهان کي ايندڙ حصو پڙهڻ لاءِ حوصلا افزائي ڪريان ٿو جيڪو تمام گهڻو وڌيڪ طاقتور .NET Regex افعال تي بحث ڪري ٿو.ڪسٽم .NET تي ٻڌل Regex فنڪشن Excel ۾ متن ڪڍڻ لاءِ
VBA RegExp افعال جي برعڪس جيڪي ڪنهن به Excel استعمال ڪندڙ طرفان لکي سگهجي ٿو، .NET RegEx ڊولپر جي دائري ۾ آهي. Microsoft .NET فريم ورڪ پرل 5 سان مطابقت رکندڙ مڪمل فيچرڊ ريگيولر ايڪسپريشن نحو کي سپورٽ ڪري ٿو. هي آرٽيڪل توهان کي اهو نه سيکاريندو ته اهڙن ڪمن کي ڪيئن لکجي (مان ڪو پروگرامر نه آهيان ۽ مون کي ان بابت ٿورو به خيال ناهي ته اهو ڪيئن ڪجي :)
چار طاقتور فنڪشن جيڪي معياري .NET RegEx انجڻ جي ذريعي پروسيس ڪيا ويا آهن اڳ ۾ ئي اسان جي ڊولپرز طرفان لکيل آهن ۽ الٽيميٽ سوٽ ۾ شامل آهن. هيٺ، اسين ڏيکارينداسين فنڪشن جا ڪجھ عملي استعمال خاص طور تي Excel ۾ ٽيڪسٽ ڪڍڻ لاءِ.
ٽپ. .NET Regex نحو بابت ڄاڻ لاءِ، مھرباني ڪري ڏسو .NET Regular Expression Language.
سنگ کي ڪيئن ڪڍو ايڪسسل ۾ ريگيولر ايڪسپريشنز استعمال ڪندي
فرض ڪيو توهان وٽ الٽيميٽ سوٽ جو جديد ورجن انسٽال ٿيل آهي، ريگيولر ايڪسپريشن استعمال ڪندي ٽيڪسٽ ڪڍڻ انهن ٻن مرحلن تي هيٺ لهي ٿو:
- Ablebits Data ٽئب تي، Text گروپ ۾، ڪلڪ ڪريو Regex Tools . 13>
- ريجڪس ٽولز پين تي، ماخذ ڊيٽا چونڊيو، پنهنجو ريجڪس نمونو داخل ڪريو، ۽ چونڊيو Extract اختيار. نتيجو حاصل ڪرڻ لاءِ ڪسٽم فنڪشن جي طور تي، نه ڪي قدر، چونڊيو Insert as a formula چيڪ ڪريودٻو. جڏهن ڪيو ويو، ڪلڪ ڪريو Extract بٽڻ.
نتيجا توهان جي اصل ڊيٽا جي ساڄي پاسي هڪ نئين ڪالم ۾ ظاهر ٿيندا:
AblebitsRegexExtract syntax
اسان جي ڪسٽم فنڪشن هيٺ ڏنل نحو آهي:
AblebitsRegexExtract(reference, regular_expression)ڪٿي:
- حوالو (گهربل) - سيل جو حوالو جنهن ۾ ماخذ اسٽرنگ آهي.
- Regular_expression (گهربل) - ملائڻ لاءِ ريجڪس جو نمونو.
اهم نوٽ! فنڪشن صرف انهن مشينن تي ڪم ڪري ٿو جن سان Ultimate Suite for Excel انسٽال ٿيل آهي.
استعمال نوٽس
توهان جي سکيا جي وکر کي وڌيڪ هموار ۽ توهان جي تجربي کي وڌيڪ خوشگوار بڻائڻ لاءِ، مهرباني ڪري انهن نقطن تي ڌيان ڏيو:
- فارمولا ٺاھڻ لاءِ، توھان استعمال ڪري سگھو ٿا اسانجو Regex Tools ، or Excel's Insert function dialog، يا سيل ۾ مڪمل فنڪشن جو نالو ٽائيپ ڪريو. هڪ ڀيرو فارمولا داخل ڪيو ويندو، توهان ان کي منظم ڪري سگهو ٿا (ايڊٽ ڪريو، ڪاپي يا منتقل ڪريو) ڪنهن به اصلي فارمولا وانگر.
- جيڪو نمونو توهان ريجڪس ٽولز پين تي داخل ڪيو ٿا اهو ٻئين دليل ڏانهن وڃي ٿو. اهو پڻ ممڪن آهي ته هڪ الڳ سيل ۾ باقاعده اظهار رکڻ لاء. ھن حالت ۾، صرف 2nd دليل لاءِ سيل ريفرنس استعمال ڪريو.
- فنڪشن ڪڍي ٿو پھرين مليو ميچ . 12> ڊفالٽ طور، فنڪشن آھي ڪيس - حساس . غير حساس ميلاپ لاءِ، (؟i) نمونو استعمال ڪريو.
- جيڪڏهن هڪ ميچ نه ملي، ته هڪ #N/A غلطي آهيواپس آيو.
ٻن اکرن جي وچ ۾ اسٽرنگ ڪڍڻ لاءِ Regex
ٻن اکرن جي وچ ۾ ٽيڪسٽ حاصل ڪرڻ لاءِ، توهان يا ته ڪيپچرنگ گروپ استعمال ڪري سگهو ٿا يا چوڌاري ڏسو.
اچو چئو ته توهان بریکٹ جي وچ ۾ متن ڪڍڻ چاهيو ٿا. هڪ قبضو ڪرڻ وارو گروپ تمام آسان طريقو آهي.
پيٽرن 1 : \[(.*?)\]
هڪ مثبت نظر سان پوئتي ۽ اڳتي ڏسڻ سان، نتيجو بلڪل صحيح ٿيندو ساڳيو.
پيٽرن 2 : (؟<=\[)(.*?)(?=\])
مهرباني ڪري ڌيان ڏيو ته اسان جي گرفتاري گروپ (.*؟) هڪ سست ڳولا ٻن بریکٹس جي وچ ۾ متن لاءِ انجام ڏئي ٿو - پهرين کان [پهرين تائين]. هڪ پڪڙڻ وارو گروپ بغير ڪنهن سوال جي نشان جي ( ) لالچ ڳولها ڪندو ۽ سڀڪنھن شيء کي پڪڙيندو پهرين [ کان آخري تائين ].
A2 ۾ نموني سان، فارمولا ائين ٿئي ٿو هيٺ ڏنل:
=AblebitsRegexExtract(A5, $A$2)
16>سڀني ميچون ڪيئن حاصل ڪيون
جيئن اڳ ۾ ئي ذڪر ڪيو ويو آهي، AblebitsRegexExtract فنڪشن صرف هڪ ميچ ڪڍي سگهي ٿو. سڀ ميچون حاصل ڪرڻ لاءِ، توھان استعمال ڪري سگھوٿا VBA فنڪشن جيڪو اسان اڳ ۾ بحث ڪيو آھي. تنهن هوندي، اتي هڪ احتياط آهي - VBA RegExp گروپن کي پڪڙڻ جي حمايت نٿو ڪري، تنهنڪري مٿيون نمونو "حد" اکرن کي واپس آڻيندو، اسان جي صورت ۾ بریکٹس.
=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))
حاصل ڪرڻ لاء بریکٹس مان، ھن فارمولا کي استعمال ڪندي انھن کي خالي اسٽرنگ ("") سان تبديل ڪريو:
=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")
بهتر پڙھڻ لاءِ، اسين ڊيليميٽر لاءِ ڪاما استعمال ڪري رھيا آھيون.
ٻن تارن جي وچ ۾ ٽيڪسٽ ڪڍڻ لاءِ ريجڪس
جنهن طريقي سان اسان ڪم ڪيو آهيان کي لفظي معنيٰ ڏيو).
ان تي منحصر آهي ته A2 ۾ ريگيولر ايڪسپريشن داخل ڪيو ويو آهي، هيٺ ڏنل فارمولا مختلف نتيجا ڏيندو:
=AblebitsRegexExtract(A5, $A$2)
Regex ڪڍڻ لاءِ مڪمل ڊومين جو نالو سڀني ذيلي ڊومينز سان:
ڪڍڻ لاءِ ريجڪس سيڪنڊ-سطح ڊومين سب ڊومينس کان سواءِ:
انهي طريقي سان ايڪسل ۾ ٽيڪسٽ جا حصا ڪڍڻا آهن باقاعده اظهار استعمال ڪندي. مان پڙهڻ لاءِ توهان جي مهرباني ۽ توهان کي ايندڙ هفتي اسان جي بلاگ تي ڏسڻ لاءِ منتظر آهيان!
دستياب ڊائون لوڊ
Excel Regex Extract Extract example (.xlsm file)
Ultimate Suite trial version (.exe فائيل)
\b(0؟[0-9]matches.Count - 1 text_maches(match_index, 0) = matches.Item(matches_index) Next matches_index RegExpExtract = text_maches ٻي صورت ۾ RegExpExtract = matches.Item(instance_num - 1) End If End If Exit Function:VrrxlEndEf Function:VrrxlEndExجيڪڏهن توهان وٽ VBA سان ٿورو تجربو آهي، هڪ قدم قدم صارف گائيڊ مددگار ثابت ٿي سگهي ٿو: Excel ۾ VBA ڪوڊ ڪيئن داخل ڪجي.
نوٽ. فنڪشن ڪم ڪرڻ لاءِ، پڪ ڪريو ته پنھنجي فائل کي محفوظ ڪريو جيئن macro-enabled workbook (.xlsm).
RegExpExtract Syntax
The RegExpExtract فنڪشن هڪ ان پٽ اسٽرنگ ڳولهي ٿو قدرن لاءِ جيڪي هڪ ريگيولر ايڪسپريشن سان ملن ٿيون ۽ هڪ يا سڀ ميچون ڪڍيون وڃن ٿيون.
فڪشن ۾ هيٺيون نحو آهي :
RegExpExtract(text, pattern, [instance_num], [match_case])جتي:
- ٽيڪسٽ (گهربل) - ڳولهڻ لاءِ ٽيڪسٽ اسٽرنگ.
- Pattern (گهربل) - ملائڻ لاءِ باقاعده اظهار. جڏهن سڌو سنئون فارمولا ۾ فراهم ڪيو وڃي، نموني کي ڊبل اقتباس جي نشانين ۾ بند ڪيو وڃي.
- Instance_num (اختياري) - هڪ سيريل نمبر جيڪو ظاهر ڪري ٿو ته ڪهڙو مثال ڪڍڻو آهي. جيڪڏهن ختم ڪيو وڃي، سڀ مليا ملندڙ ملن (ڊفالٽ) ڏي ٿو.
- Match_case (اختياري) - وضاحت ڪري ٿو ته ڇا ملائڻ يا ٽيڪسٽ ڪيس کي نظرانداز ڪرڻ. جيڪڏهن صحيح يا ختم ٿيل (ڊفالٽ)، ڪيس-حساس ميلاپ ڪيو ويندو آهي؛ If FALSE - case-insensitive.
فنڪشن ايڪسل 365، ايڪسل 2021، ايڪسل جي سڀني ورزن ۾ ڪم ڪري ٿو2019, Excel =TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))
, Excel 2013 and Excel 2010.
4 شيون جيڪي توھان کي ڄاڻڻ گھرجي RegExpExtract جي باري ۾
- ڊفالٽ طور، فنڪشن واپس ڪري ٿو سڀ مليا ميچز پاڙيسري سيلن ۾ جيئن هن مثال ۾ ڏيکاريل آهي. هڪ مخصوص واقعا حاصل ڪرڻ لاءِ، هڪ لاڳاپيل نمبر فراهم ڪريو instance_num دليل.
- ڊفالٽ طور، فنڪشن آهي ڪيس-حساس . ڪيس جي غير حساس ميلاپ لاءِ، match_case دليل کي FALSE تي سيٽ ڪريو. VBA جي حدن جي ڪري، ڪيس جي غير حساس تعمير (؟i) ڪم نه ڪندي.
- جيڪڏهن هڪ درست نمونو نه مليو آهي ، فنڪشن ڪجھ به نه موٽائي ٿو (خالي اسٽرنگ).
- جيڪڏهن پيٽرن غلط آهي ، هڪ #VALUE! غلطي ٿئي ٿي.
ان کان اڳ جو توھان پنھنجي ورڪ شيٽ ۾ ھي ڪسٽم فنڪشن استعمال ڪرڻ شروع ڪريو، توھان کي سمجھڻ گھرجي ته اھو ڇا جي قابل آھي، صحيح؟ هيٺ ڏنل مثال ڪجھ عام استعمال جي ڪيسن کي ڍڪيندا آهن ۽ وضاحت ڪن ٿا ته رويي ۾ فرق ڇو ٿي سگھي ٿو Dynamic Array Excel (Microsoft 365 ۽ Excel 2021) ۽ روايتي Excel (2019 ۽ پراڻن ورزن).
نوٽ. آئوٽ ريجڪس مثالن لاءِ لکيل آهن سادي ڊيٽا سيٽن لاءِ. اسان ضمانت نٿا ڏئي سگهون ته اهي توهان جي حقيقي ورڪ شيٽ ۾ بي عيب ڪم ڪندا. جن کي ريجڪس سان تجربو آهي ان ڳالهه تي متفق هوندا ته باقاعده اظهار لکڻ هڪ ڪمال لاءِ ڪڏهن به ختم نه ٿيڻ وارو رستو آهي - تقريبن هميشه ٺاهڻ جو هڪ طريقو آهياهو وڌيڪ خوبصورت يا ان پٽ ڊيٽا جي وسيع رينج کي هٿي ڏيڻ جي قابل آهي.
اسٽرنگ مان نمبر ڪڍڻ لاءِ ريجڪس
سيکارڻ جي بنيادي وڌ کان وڌ ”سادو کان پيچيده تائين“ تي عمل ڪندي، اسان هڪ بلڪل سادي صورت سان شروع ڪنداسين: اسٽرنگ مان نمبر ڪڍڻ.
The پهرين شيءِ توهان لاءِ فيصلو ڪرڻ آهي ته ڪهڙو نمبر ٻيهر حاصل ڪرڻو آهي: پهريون، آخري، مخصوص واقعو يا سڀ نمبر.
پهريون نمبر ڪڍو
اهو ايترو سادو آهي جيترو ريجڪس حاصل ڪري سگهي ٿو. ڏنو ويو آهي ته \d جو مطلب آهي 0 کان 9 تائين ڪو به انگ، ۽ + جو مطلب آهي هڪ يا وڌيڪ ڀيرا، اسان جو باقاعده اظهار هي فارم وٺي ٿو:
Pattern : \d+
Set instance_num to 1 ۽ توھان مطلوب نتيجو حاصل ڪندا:
=RegExpExtract(A5, "\d+", 1)
جتي A5 اصل اسٽرنگ آھي.
سھولت لاءِ، توھان ان پٽ ڪري سگھو ٿا اڳواٽ بيان ڪيل سيل ($A$2) ۾ نمونو ۽ ان جي ايڊريس کي $ نشاني سان لاڪ ڪريو:
=RegExpExtract(A5, $A$2, 1)
گٽ آخري نمبر
اسٽرنگ ۾ آخري نمبر ڪڍڻ لاءِ , هتي استعمال ڪرڻ جو نمونو آهي:
Pattern : (\d+)(?!.*\d)
انساني ٻولي ۾ ترجمو ٿيل ، اهو چوي ٿو: هڪ نمبر ڳوليو جنهن جي پٺيان نه هجي (ڪٿي به، نه صرف فوري طور تي) ڪنهن ٻئي نمبر طرفان. هن کي ظاهر ڪرڻ لاءِ، اسان استعمال ڪري رهيا آهيون هڪ ناڪاري ڏس اڳواٽ (؟!.*\d)، جنهن جو مطلب آهي ته نموني جي ساڄي پاسي ڪو ٻيو عدد (\d) نه هجڻ گهرجي، قطع نظر ان کان اڳ ٻيا ڪيترا اکر آهن.
=RegExpExtract(A5, "(\d+)(?!.*\d)")
ٽوٽڪا:
- حاصل ڪرڻ لاءِ هڪ مخصوص واقعو ، استعمال ڪريو \d+ لاءِ نمائشي ۽ هڪ مناسب سيريلنمبر لاءِ instance_num .
- سڀ نمبر ڪڍڻ جو فارمولا ايندڙ مثال ۾ بحث ڪيو ويو آهي.
سڀني ميچن کي ڪڍڻ لاءِ ريجڪس
اسان جي مثال کي ٿورو اڳتي وڌايو، فرض ڪريو ته توهان هڪ تار مان سڀئي نمبر حاصل ڪرڻ چاهيو ٿا، صرف هڪ نه.
جيئن توهان کي ياد هوندو، ڪڍيل ميچن جو تعداد اختياري <1 ذريعي ڪنٽرول ڪيو ويندو آهي> instance_num دليل. ڊفالٽ سڀ ميچون آهن، تنهنڪري توهان صرف هن پيٽرول کي ڇڏي ڏيو:
=RegExpExtract(A2, "\d+")
فارمولا هڪ سيل لاءِ سهڻي نموني ڪم ڪري ٿو، پر اهو رويو مختلف آهي Dynamic Array Excel ۽ غير متحرڪ ورزن ۾.
Excel 365 ۽ Excel 2021
Dynamic arrays جي سپورٽ جي ڪري، هڪ باقاعده فارمولا خودڪار طور تي گھڻن سيلن ۾ وڌندو آهي جيترو سڀني حسابن جي نتيجن کي ڏيکارڻ جي ضرورت آهي. Excel جي اصطلاحن ۾، ھن کي سڏيو ويندو آھي اسپيل رينج:
Excel 2019 ۽ ھيٺئين
پري متحرڪ Excel ۾، مٿي ڏنل فارمولا صرف ھڪڙي ميچ کي واپس آڻيندو. گھڻن ميچن کي حاصل ڪرڻ لاء، توھان کي ان کي ھڪڙي ترتيب ڏيڻ جي ضرورت آھي. ان لاءِ، سيلز جي هڪ حد چونڊيو، فارمولا ٽائيپ ڪريو، ۽ ان کي مڪمل ڪرڻ لاءِ Ctrl + Shift + Enter کي دٻايو.
هن طريقي جو هڪ هيٺيون پاسو آهي #N/A غلطين جو هڪ گروپ جيڪو "اضافي سيلز" ۾ ظاهر ٿئي ٿو. . افسوس، ان بابت ڪجھ به نه ٿو ڪري سگھجي (نه IFERROR ۽ نه ئي IFNA ان کي درست ڪري سگھن ٿا، افسوس).
سڀني ميچن کي ھڪڙي سيل ۾ ڪڍو
جڏھن ڊيٽا جي ڪالمن کي پروسيس ڪيو وڃي، مٿي ڏنل طريقي سان واضح طور تي ڪم نه ڪندو. هن معاملي ۾، هڪ مثالي حلھڪڙي سيل ۾ سڀ ميچون واپس آڻيندي. اهو مڪمل ڪرڻ لاءِ، RegExpExtract جا نتيجا TEXTJOIN فنڪشن ۾ پيش ڪريو ۽ انهن کي ڪنهن به ڊيليميٽر سان الڳ ڪريو جيڪي توهان چاهيو ٿا، ڪاما ۽ هڪ اسپيس چئو:
=TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))
نوٽ. ڇاڪاڻ ته TEXTJOIN فنڪشن صرف Microsoft 365، Excel 2021 ۽ Excel 2019 لاءِ Excel ۾ موجود آهي، اهو فارمولا پراڻن ورزن ۾ ڪم نه ڪندو.
اسٽرنگ مان ٽيڪسٽ ڪڍڻ لاءِ Regex
ٽيڪسٽ ڪڍڻ هڪ الفانومريڪ اسٽرنگ Excel ۾ ڪافي مشڪل ڪم آهي. ريجڪس سان، اهو پائي وانگر آسان ٿي ويندو آهي. هر شيءِ سان ملائڻ لاءِ صرف هڪ منفي ڪلاس استعمال ڪريو جيڪو عدد نه هجي.
Pattern : [^\d]+
انفرادي سيلن ۾ سبسٽرنگ حاصل ڪرڻ لاءِ (اسپل رينج) , فارمولا آهي:
=RegExpExtract(A5, "[^\d]+")
سڀني ميچن کي هڪ سيل ۾ آئوٽ ڪرڻ لاءِ، TEXTJOIN ۾ RegExpExtract فنڪشن کي هن طرح ٺاهيو:
=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))
Regex to اسٽرنگ مان اي ميل ايڊريس ڪڍو
مختلف معلومات تي مشتمل اسٽرنگ مان اي ميل ايڊريس ڪڍڻ لاءِ، هڪ باقاعده اظهار لکو جيڪو اي ميل ايڊريس جي ڍانچي کي نقل ڪري ٿو.
Pattern : [\w\.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,24}
هن ريجڪس کي ٽوڙڻ , هتي اهو آهي جيڪو اسان حاصل ڪريون ٿا:
- [\w\.\-]+ هڪ استعمال ڪندڙ جو نالو آهي جنهن ۾ 1 يا وڌيڪ الفانمري اکر، انڊر اسڪور، ڊٽس ۽ هائفن شامل ٿي سگهن ٿا.
- @ علامت
- [A-Za-z0-9\.\-]+ هڪ ڊومين نالو آهي جنهن تي مشتمل آهي: اپر ڪيس ۽ لوئر ڪيز اکر، انگ، هائيفن ۽ ڊٽس (جي صورت ۾ذيلي ڊومينز جو). هتي انڊر اسڪور جي اجازت نه آهي، تنهن ڪري 3 مختلف ڪردارن جا سيٽ (جهڙوڪ A-Z a-z ۽ 0-9) استعمال ڪيا وڃن ٿا \w جي بدران جيڪي ڪنهن به اکر، عدد يا انڊر اسڪور سان ملن.
- \.[A-Za-z ]{2,24} هڪ اعليٰ سطحي ڊومين آهي. ڊٽ تي مشتمل هوندو آهي جنهن جي پٺيان وڏا ۽ ننڍا اکر هوندا آهن. اڪثر اعليٰ سطحي ڊومينز 3-اکر ڊگھا هوندا آهن (مثال طور .com .org، .edu، وغيره)، پر نظريي ۾ ان ۾ 2 کان 24 اکر شامل هوندا (سڀ کان ڊگھو رجسٽرڊ TLD).
فرض ڪريو اسٽرنگ A5 ۾ آهي ۽ نمونو A2 ۾ آهي، اي ميل ايڊريس ڪڍڻ جو فارمولو هي آهي:
=RegExpExtract(A5, $A$2)
اي ميل مان ڊومين ڪڍڻ لاءِ ريجڪس
جڏهن اهو اي ميل ڊومين کي ڪڍڻ لاءِ اچي ٿو، پهرين سوچ جيڪا ذهن ۾ اچي ٿي اها آهي ڪيپچرنگ گروپ استعمال ڪندي ٽيڪسٽ ڳولڻ لاءِ جيڪو فوري طور تي @ ڪردار جي پيروي ڪري.
Pattern : @([A-Za-z0 -9\.\-]+\[A-Za-z]{2,24})
ان کي اسان جي RegExp فنڪشن ۾ پيش ڪريو:
=RegExpExtract(A5, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})")
۽ توھان ھي نتيجو حاصل ڪندا:
ڪلاسڪ ريگيولر ايڪسپريسز سان، ڪيپچرنگ گروپ کان ٻاھر ڪا به شيءِ ڪڍڻ ۾ شامل نه آھي. ڪو به نٿو ڄاڻي ته VBA RegEx مختلف طريقي سان ڪم ڪري ٿو ۽ "@" کي پڻ پڪڙي ٿو. ان مان نجات حاصل ڪرڻ لاءِ، توھان نتيجو مان پھريون اکر ڪڍي سگھوٿا ان کي خالي اسٽرنگ سان تبديل ڪري.
=REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")
فون نمبر ڪڍڻ لاءِ باقاعده اظهار
فون نمبر ڪيترن ئي مختلف طريقن سان لکي سگهجي ٿو، ڇو ته اهو سڀ ڪجهه هيٺ ڪم ڪندڙ حل سان گڏ اچڻ ناممڪن آهي.(\d{4}string کان
تاريخ کي ڪڍڻ لاءِ هڪ باقاعده اظهار ان فارميٽ تي منحصر آهي جنهن ۾ تاريخ تار ۾ ظاهر ٿئي ٿي. مثال طور:
تاريخون ڪڍڻ لاءِ 1/1/21 يا 01/01/2021، ريجڪس آهي: \d{1,2}\/\d{1,2}\/(\d {4}حالتون. تنهن هوندي به، توهان پنهنجي ڊيٽا سيٽ ۾ استعمال ڪيل سڀئي فارميٽ لکي سگهو ٿا ۽ انهن کي ملائڻ جي ڪوشش ڪريو.
هن مثال لاءِ، اسان هڪ ريجڪس ٺاهڻ وارا آهيون جيڪو انهن مان ڪنهن به فارميٽ ۾ فون نمبر ڪڍندو:
(123) 345-6789 (123) 345 6789 (123)3456789 123- 345-6789 | 123.345.6789 123 345 6789 1233456789 |
نمو : \(؟\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b
- پهريون حصو \(?\d{3} صفر سان ملندو آهي يا هڪ افتتاحي قوس، بعد ۾ ٽي عدد d{3}.
- [-\. \)]* حصو جو مطلب آهي چورس بریکٹس ۾ ڪو به اکر جيڪو 0 يا وڌيڪ ڀيرا ظاهر ٿئي ٿو: هائيفن، پيريڊ، اسپيس يا بند قوس.
- اڳيون، اسان وٽ ٽي عدد آهن وري d{3} پٺيان ڪو hyphen، period يا space [-\. ]؟ ظاهر ٿئي ٿو 0 يا 1 وقت ڳولهڻ وڏي انگ جو حصو نه ٿو ٿي سگهي.
مڪمل فارمولا هي شڪل وٺي ٿو:
=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")
مهرباني ڪري آگاهه رهو ته مٿيون ريجڪس ڪجهه موٽائي سگھي ٿو غلط-مثبت نتيجا جهڙوڪ 123) 456 7899 يا (123 456 7899. هيٺ ڏنل نسخو انهن مسئلن کي حل ڪري ٿو. جڏهن ته، هي نحو صرف VBA RegExp ڪمن ۾ ڪم ڪري ٿو، نه ته کلاسي ريگيولر ايڪسپريشن ۾.
پيٽرن : (\(\d{3}\)ٻن اکرن جي وچ ۾ ٽيڪسٽ ڪڍڻ لاءِ out به ٻن تارن جي وچ ۾ ٽيڪسٽ ڪڍڻ لاءِ ڪم ڪندو.
مثال طور، "test 1" ۽ "test 2" جي وچ ۾ سڀڪنھن شيءِ کي حاصل ڪرڻ لاءِ، ھيٺ ڏنل باقاعده اظهار استعمال ڪريو.
نمون : ٽيسٽ 1(.*؟)ٽيسٽ 2
مڪمل فارمولا آهي:
=AblebitsRegexExtract(A5, "test 1(.*?)test 2")
URL مان ڊومين ڪڍڻ لاءِ ريجڪس
جيتوڻيڪ باقاعده اظهار سان، URLs مان ڊومين جا نالا ڪڍڻ ڪو معمولي ڪم ناهي. اھم عنصر جيڪو چال ڪندو آھي غير گرفتاري گروپ آھي. توھان جي آخري مقصد تي مدار رکندي، ھيٺ ڏنل ريجڪس مان ھڪڙو چونڊيو.
حاصل ڪرڻ لاءِ مڪمل ڊومين جو نالو بشمول ذيلي ڊومينز
نمون : (?: https؟\: