एक्सेलमधील स्ट्रिंग्स काढण्यासाठी Regex (एक किंवा सर्व जुळण्या)

  • ह्याचा प्रसार करा
Michael Brown

सामग्री सारणी

या ट्युटोरियलमध्ये, तुम्ही दिलेल्या पॅटर्नशी जुळणारे सबस्ट्रिंग्स शोधण्यासाठी आणि काढण्यासाठी एक्सेलमध्ये रेग्युलर एक्सप्रेशन कसे वापरायचे ते शिकाल.

मायक्रोसॉफ्ट एक्सेल मजकूर काढण्यासाठी अनेक फंक्शन्स पुरवतो. पेशी पासून. ती फंक्शन्स तुमच्या वर्कशीटमधील बहुतेक स्ट्रिंग एक्सट्रॅक्शन आव्हानांचा सामना करू शकतात. बहुतेक, परंतु सर्वच नाही. जेव्हा मजकूर कार्ये अडखळतात, तेव्हा नियमित अभिव्यक्ती बचावासाठी येतात. थांबा... Excel मध्ये RegEx फंक्शन्स नाहीत! खरे, अंगभूत कार्ये नाहीत. परंतु असे काहीही नाही जे तुम्हाला तुमचे स्वतःचे वापरण्यापासून प्रतिबंधित करेल :)

    स्ट्रिंग काढण्यासाठी एक्सेल VBA Regex फंक्शन

    तुमच्या Excel मध्ये कस्टम Regex Extract फंक्शन जोडण्यासाठी, VBA एडिटरमध्ये खालील कोड पेस्ट करा. VBA मध्ये रेग्युलर एक्सप्रेशन सक्षम करण्यासाठी, आम्ही अंगभूत मायक्रोसॉफ्ट RegExp ऑब्जेक्ट वापरत आहोत.

    सार्वजनिक कार्य RegExpExtract(मजकूर स्ट्रिंग म्हणून, स्ट्रिंग म्हणून नमुना, पूर्णांक म्हणून पर्यायी उदाहरण_संख्या = 0, पर्यायी जुळणी_केस बूलियन = सत्य म्हणून) मंद text_matches() एररवर पूर्णांक म्हणून स्ट्रिंग मंद जुळते. ignorecase = असत्य अन्यथा regex.ignorecase = True End जर सेट जुळत असेल तर = regex.Execute(text) जर 0 < matches.Count नंतर If (0 = instance_num) नंतर text_matches पुन्हा डिम करा(maches.Count - 1, 0) matches_index = 0 साठीVBA RegExp, मी तुम्हाला पुढील भाग वाचण्यासाठी प्रोत्साहित करतो ज्यामध्ये अधिक शक्तिशाली .NET Regex फंक्शन्सची चर्चा केली जाते.

    Excel मध्ये मजकूर काढण्यासाठी कस्टम .NET आधारित Regex फंक्शन

    VBA RegExp फंक्शन्सच्या विपरीत कोणत्याही एक्सेल वापरकर्त्याद्वारे लिहिले जाऊ शकते, .NET RegEx हे विकसकाचे क्षेत्र आहे. Microsoft .NET Framework Perl 5 शी सुसंगत पूर्ण-वैशिष्ट्यीकृत रेग्युलर एक्स्प्रेशन सिंटॅक्सला सपोर्ट करते. हा लेख तुम्हाला अशी फंक्शन्स कशी लिहायची हे शिकवणार नाही (मी प्रोग्रामर नाही आणि ते कसे करायचे याबद्दल मला थोडीशी कल्पना नाही :)

    स्टँडर्ड .NET RegEx इंजिनद्वारे प्रक्रिया केलेली चार शक्तिशाली फंक्शन्स आमच्या डेव्हलपरने आधीच लिहिली आहेत आणि अल्टीमेट सूटमध्ये समाविष्ट केली आहेत. खाली, आम्ही एक्सेलमध्ये मजकूर काढण्यासाठी खास डिझाइन केलेल्या फंक्शनचे काही व्यावहारिक उपयोग दाखवू.

    टीप. .NET Regex सिंटॅक्सबद्दल माहितीसाठी, कृपया .NET नियमित अभिव्यक्ती भाषा पहा.

    रेगुलर एक्सप्रेशन्स वापरून एक्सेलमध्ये स्टिंग कसे काढायचे

    तुमच्याकडे अल्टीमेट सूटची नवीनतम आवृत्ती स्थापित केली आहे असे गृहीत धरून, रेग्युलर एक्सप्रेशन वापरून मजकूर काढणे या दोन चरणांवर उकळते:

    1. Ablebits Data टॅबवर, Text गटात, Regex Tools वर क्लिक करा.
    2. Regex Tools उपखंडावर, स्रोत डेटा निवडा, तुमचा Regex नमुना प्रविष्ट करा आणि Extract पर्याय निवडा. मूल्य म्हणून नव्हे तर सानुकूल कार्य म्हणून परिणाम प्राप्त करण्यासाठी, सूत्र म्हणून घाला चेक निवडाबॉक्स. पूर्ण झाल्यावर, Extract बटणावर क्लिक करा.

    परिणाम तुमच्या मूळ डेटाच्या उजवीकडे एका नवीन स्तंभात दिसतील:

    AblebitsRegexExtract सिंटॅक्स

    आमच्या कस्टम फंक्शनमध्ये खालील वाक्यरचना आहे:

    AblebitsRegexExtract(reference, regular_expression)

    कुठे:

    • संदर्भ (आवश्यक) - स्त्रोत स्ट्रिंग असलेल्या सेलचा संदर्भ.
    • Regular_expression (आवश्यक) - जुळण्यासाठी regex पॅटर्न.

    महत्त्वाची टीप! फंक्शन फक्त Ultimate Suite for Excel स्थापित केलेल्या मशीनवर कार्य करते.

    वापर नोट्स

    तुमचा शिकण्याची वक्र अधिक नितळ बनवण्यासाठी आणि तुमचा अनुभव अधिक आनंददायी करण्यासाठी, कृपया या मुद्द्यांकडे लक्ष द्या:

    1. फॉर्म्युला तयार करण्यासाठी, तुम्ही आमची Regex Tools , किंवा Excel चा Insert function डायलॉग वापरू शकता किंवा सेलमध्ये पूर्ण फंक्शनचे नाव टाइप करू शकता. एकदा फॉर्म्युला घातल्यानंतर, तुम्ही कोणत्याही मूळ सूत्राप्रमाणे ते व्यवस्थापित करू शकता (संपादित, कॉपी किंवा हलवा).
    2. तुम्ही Regex Tools उपखंडावर जो नमुना एंटर करता तो 2ऱ्या वितर्कावर जातो. वेगळ्या सेलमध्ये नियमित अभिव्यक्ती ठेवणे देखील शक्य आहे. या प्रकरणात, 2ऱ्या वितर्कासाठी फक्त सेल संदर्भ वापरा.
    3. फंक्शन पहिली आढळलेली जुळणी काढते.
    4. डिफॉल्टनुसार, फंक्शन केस आहे -संवेदनशील . केस-असंवेदनशील जुळणीसाठी, (?i) पॅटर्न वापरा.
    5. जुळणी न आढळल्यास, #N/A त्रुटी आहेपरत आले.

    दोन वर्णांमधील स्ट्रिंग काढण्यासाठी Regex

    दोन वर्णांमधील मजकूर मिळविण्यासाठी, तुम्ही एकतर कॅप्चरिंग ग्रुप किंवा लुक-अराउंड वापरू शकता.

    चला तुम्ही कंसातील मजकूर काढू पाहत आहात असे म्हणा. गट कॅप्चर करणे हा सर्वात सोपा मार्ग आहे.

    पॅटर्न 1 : \[(.*?)\]

    मागे आणि पुढे पाहिल्यास, परिणाम अचूक असेल समान.

    पॅटर्न 2 : (?<=\[)(.*?)(?=\])

    कृपया आमच्या कॅप्चरिंग ग्रुपकडे लक्ष द्या (.*?) दोन कंसांमधील मजकूरासाठी आळशी शोध करते - पहिल्या [ ते पहिल्या ] पर्यंत. प्रश्न चिन्हाशिवाय कॅप्चर करणारा गट ( *) लोभी शोध करेल आणि प्रथम [ शेवटपर्यंत ] सर्वकाही कॅप्चर करेल.

    A2 मधील पॅटर्नसह, सूत्र असे जाते खालील:

    =AblebitsRegexExtract(A5, $A$2)

    सर्व सामने कसे मिळवायचे

    आधीच नमूद केल्याप्रमाणे, AblebitsRegexExtract फंक्शन फक्त एक जुळणी काढू शकते. सर्व जुळण्या मिळवण्यासाठी, आम्ही आधी चर्चा केलेले VBA फंक्शन तुम्ही वापरू शकता. तथापि, एक सावध आहे - VBA RegExp गट कॅप्चर करण्यास समर्थन देत नाही, म्हणून वरील पॅटर्न "सीमा" वर्ण देखील परत करेल, आमच्या बाबतीत कंस.

    =TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

    मुक्त होण्यासाठी कंसात, या सूत्राचा वापर करून त्यांना रिक्त स्ट्रिंग्स ("") सह बदला:

    =SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")

    चांगल्या वाचनीयतेसाठी, आम्ही परिसीमकासाठी स्वल्पविराम वापरत आहोत.

    दोन स्ट्रिंगमधील मजकूर काढण्यासाठी Regex

    आम्ही काम केलेला दृष्टिकोनत्याचा शब्दशः अर्थ लावा).

  • (?:[A-Za-z\d\-\.]{2,255}\.)? - तृतीय-स्तर, चौथ्या-स्तर, इ. डोमेन ओळखण्यासाठी नॉन-कॅप्चरिंग गट, काही असल्यास (आमच्या नमुना URL मध्ये मोबाइल ). पहिल्या पॅटर्नमध्ये, अशा सर्व सबडोमेनला एक्सट्रॅक्शनमध्ये समाविष्ट करण्यासाठी ते मोठ्या कॅप्चरिंग ग्रुपमध्ये ठेवले जाते. सबडोमेन 2 ते 255 वर्णांपर्यंत लांब असू शकते, म्हणून {2,255} क्वांटिफायर.
  • ([A-Za-z\d\-]{1,63}\.[A-Za-z] {2,24}) - द्वितीय-स्तरीय डोमेन ( ablebits ) आणि उच्च-स्तरीय डोमेन ( com ) काढण्यासाठी गट कॅप्चर करणे. द्वितीय-स्तरीय डोमेनची कमाल लांबी 63 वर्ण आहे. सध्या अस्तित्वात असलेल्या सर्वात लांब शीर्ष-स्तरीय डोमेनमध्ये 24 वर्ण आहेत.
  • A2 मध्ये कोणती रेग्युलर एक्सप्रेशन प्रविष्ट केली आहे यावर अवलंबून, खालील सूत्र भिन्न परिणाम देईल:

    =AblebitsRegexExtract(A5, $A$2)

    सर्व उपडोमेनसह पूर्ण डोमेन नाव काढण्यासाठी Regex:

    उपडोमेनशिवाय दुसरा-स्तर डोमेन काढण्यासाठी Regex:

    रेग्युलर एक्स्प्रेशन्स वापरून एक्सेलमधील मजकूराचे भाग कसे काढायचे. वाचल्याबद्दल मी तुमचे आभारी आहे आणि पुढच्या आठवड्यात तुम्हाला आमच्या ब्लॉगवर भेटण्यास उत्सुक आहे!

    उपलब्ध डाउनलोड

    Excel Regex Extract उदाहरणे (.xlsm फाइल)

    अंतिम सूट चाचणी आवृत्ती (.exe फाइल)

    \b(0?[0-9]matches.Count - 1 text_matches(matches_index, 0) = matches.Item(matches_index) पुढील matches_index RegExpExtract = text_matches अन्यथा RegExpExtract = matches.Item(instance_num - 1) End If End If Exit Function:VrrxErrxEndFunction ErrRxEndErrxEndErrx

    तुम्हाला VBA चा थोडासा अनुभव असल्यास, एक चरण-दर-चरण वापरकर्ता मार्गदर्शक उपयुक्त ठरू शकतो: Excel मध्ये VBA कोड कसा घालावा.

    टीप. फंक्शन कार्य करण्यासाठी, तुमची फाइल मॅक्रो-सक्षम वर्कबुक (.xlsm) म्हणून सेव्ह करण्याचे सुनिश्चित करा.

    RegExpExtract सिंटॅक्स

    RegExpExtract फंक्शन रेग्युलर एक्सप्रेशनशी जुळणाऱ्या मूल्यांसाठी इनपुट स्ट्रिंग शोधते आणि एक किंवा सर्व जुळण्या काढते.

    फंक्शनमध्ये खालील वाक्यरचना आहे :

    RegExpExtract(text, pattern, [instance_num], [match_case])

    कुठे:

    • मजकूर (आवश्यक) - शोधण्यासाठी मजकूर स्ट्रिंग.
    • पॅटर्न (आवश्यक) - जुळण्यासाठी नियमित अभिव्यक्ती. फॉर्म्युलामध्ये थेट पुरवठा केल्यावर, नमुना दुहेरी अवतरण चिन्हांमध्ये बंद केला पाहिजे.
    • Instance_num (पर्यायी) - कोणता प्रसंग काढायचा हे सूचित करणारा अनुक्रमांक. वगळल्यास, सर्व आढळलेल्या जुळण्या परत करतात (डीफॉल्ट).
    • Match_case (पर्यायी) - मजकूर केस जुळवायचे की दुर्लक्ष करायचे हे परिभाषित करते. TRUE किंवा वगळल्यास (डीफॉल्ट), केस-संवेदनशील जुळणी केली जाते; असत्य असल्यास - केस-संवेदनशील.

    फंक्शन Excel 365, Excel 2021, Excel च्या सर्व आवृत्त्यांमध्ये कार्य करते2019, Excel 2016, Excel 2013 आणि Excel 2010.

    4 गोष्टी तुम्हाला RegExpExtract बद्दल माहित असाव्यात

    तुमच्या Excel मध्ये फंक्शन प्रभावीपणे वापरण्यासाठी, काही महत्त्वाच्या गोष्टी लक्षात घ्याव्यात:

    1. डिफॉल्टनुसार, फंक्शन या उदाहरणात दाखवल्याप्रमाणे शेजारच्या सेलमध्ये सर्व आढळलेले जुळण्या परत करते. विशिष्ट घटना प्राप्त करण्यासाठी, instance_num युक्तिवादाला संबंधित क्रमांक द्या.
    2. डिफॉल्टनुसार, फंक्शन केस-संवेदी आहे. केस-संवेदनशील जुळणीसाठी, match_case युक्तिवाद FALSE वर सेट करा. VBA मर्यादांमुळे, केस-असंवेदनशील रचना (?i) कार्य करणार नाही.
    3. जर वैध नमुना आढळला नाही , फंक्शन काहीही मिळवत नाही (रिक्त स्ट्रिंग).
    4. जर पॅटर्न अवैध असेल तर, #VALUE! त्रुटी येते.

    तुम्ही तुमच्या वर्कशीटमध्ये हे सानुकूल फंक्शन वापरणे सुरू करण्यापूर्वी, तुम्हाला ते काय सक्षम आहे हे समजून घेणे आवश्यक आहे, बरोबर? खालील उदाहरणांमध्ये काही सामान्य वापर प्रकरणे समाविष्ट आहेत आणि डायनॅमिक अॅरे एक्सेल (Microsoft 365 आणि Excel 2021) आणि पारंपारिक Excel (2019 आणि जुन्या आवृत्त्यांमध्ये) वर्तन का वेगळे असू शकते हे स्पष्ट करते.

    टीप. आउट रेजेक्स उदाहरणे परी साध्या डेटा सेटसाठी लिहिलेली आहेत. तुमच्या वास्तविक वर्कशीटमध्ये ते निर्दोषपणे काम करतील याची आम्ही खात्री देऊ शकत नाही. ज्यांना regex चा अनुभव आहे ते सहमत असतील की नियमित अभिव्यक्ती लिहिणे हा परिपूर्णतेचा कधीही न संपणारा रस्ता आहे - जवळजवळ नेहमीच एक मार्ग असतोते अधिक शोभिवंत किंवा इनपुट डेटाची विस्तृत श्रेणी हाताळण्यास सक्षम आहे.

    स्ट्रिंगमधून नंबर काढण्यासाठी Regex

    "सोप्यापासून कॉम्प्लेक्स पर्यंत" शिकवण्याच्या मूलभूत कमालीचे अनुसरण करून, आम्ही अगदी साध्या केससह प्रारंभ करू: स्ट्रिंगमधून संख्या काढणे.

    द तुम्‍ही ठरवण्‍याची पहिली गोष्ट ही आहे की कोणता नंबर पुनर्प्राप्त करायचा आहे: प्रथम, शेवटचा, विशिष्ट घटना किंवा सर्व क्रमांक.

    पहिला क्रमांक काढा

    हे regex मिळवू शकते तितके सोपे आहे. \d म्हणजे 0 ते 9 पर्यंतचा कोणताही अंक आणि + म्हणजे एक किंवा अधिक वेळा, आमची रेग्युलर एक्सप्रेशन हा फॉर्म घेते:

    पॅटर्न : \d+

    सेट instance_num ते 1 आणि तुम्हाला अपेक्षित परिणाम मिळेल:

    =RegExpExtract(A5, "\d+", 1)

    जेथे A5 मूळ स्ट्रिंग आहे.

    सोयीसाठी, तुम्ही इनपुट करू शकता. पूर्वनिर्धारित सेलमधील नमुना ($A$2 ) आणि त्याचा पत्ता $ चिन्हासह लॉक करा:

    =RegExpExtract(A5, $A$2, 1)

    शेवटचा क्रमांक मिळवा

    स्ट्रिंगमधील शेवटचा क्रमांक काढण्यासाठी , येथे वापरण्यासाठी नमुना आहे:

    पॅटर्न : (\d+)(?!.*\d)

    मानवी भाषेत अनुवादित , ते म्हणते: असा नंबर शोधा जो इतर कोणत्याही नंबरद्वारे फॉलो केला जात नाही (कोठेही, फक्त लगेचच नाही). हे व्यक्त करण्यासाठी, आम्ही नकारात्मक लूकअहेड (?!.*\d) वापरत आहोत, याचा अर्थ पॅटर्नच्या उजवीकडे इतर कितीही अक्षरे असली तरीही इतर कोणताही अंक (\d) नसावा.<3

    =RegExpExtract(A5, "(\d+)(?!.*\d)")

    टिपा:

    • विशिष्ट घटना मिळविण्यासाठी, पॅटर्न साठी \d+ वापरा आणि योग्य मालिका instance_num साठी संख्या.
    • सर्व संख्या काढण्यासाठी सूत्राची चर्चा पुढील उदाहरणात केली आहे.

    सर्व जुळण्या काढण्यासाठी Regex

    आमचे उदाहरण थोडे पुढे ढकलून, समजा तुम्हाला एका स्ट्रिंगमधून सर्व संख्या मिळवायच्या आहेत, फक्त एक नाही.

    तुम्हाला आठवत असेल की, काढलेल्या जुळण्यांची संख्या पर्यायी <1 द्वारे नियंत्रित केली जाते>instance_num युक्तिवाद. डीफॉल्ट सर्व जुळण्या आहेत, म्हणून तुम्ही फक्त हे पॅरामीटर वगळता:

    =RegExpExtract(A2, "\d+")

    फॉर्म्युला एका सेलसाठी सुंदरपणे कार्य करते, परंतु डायनॅमिक अॅरे एक्सेल आणि नॉन-डायनॅमिक आवृत्त्यांमध्ये वर्तन वेगळे असते.

    Excel 365 आणि Excel 2021

    डायनॅमिक अॅरेच्या समर्थनामुळे, सर्व गणना केलेले परिणाम प्रदर्शित करण्यासाठी आवश्यक तितक्या सेलमध्ये नियमित फॉर्म्युला आपोआप पसरतो. एक्सेलच्या संदर्भात, याला स्पिलेड रेंज म्हणतात:

    एक्सेल 2019 आणि कमी

    प्री-डायनॅमिक एक्सेलमध्ये, वरील सूत्र फक्त एक जुळणी देईल. एकाधिक जुळण्या मिळविण्यासाठी, तुम्हाला ते अॅरे सूत्र बनवावे लागेल. यासाठी, सेलची श्रेणी निवडा, फॉर्म्युला टाइप करा आणि ते पूर्ण करण्यासाठी Ctrl + Shift + Enter दाबा.

    या दृष्टिकोनाचा एक नकारात्मक भाग म्हणजे "अतिरिक्त सेल" मध्ये दिसणार्‍या #N/A त्रुटींचा समूह आहे. . खेदाने, याबद्दल काहीही केले जाऊ शकत नाही (IFERROR किंवा IFNA दोघेही त्याचे निराकरण करू शकत नाहीत, अरेरे).

    सर्व जुळण्या एका सेलमध्‍ये काढा

    डेटाच्‍या स्‍तंभावर प्रक्रिया करताना, वरील पध्‍दत निश्चितपणे कार्य करणार नाही. या प्रकरणात, एक आदर्श उपायसर्व सामने एकाच सेलमध्ये परत करत आहे. ते पूर्ण करण्यासाठी, RegExpExtract चे परिणाम TEXTJOIN फंक्शनवर सर्व्ह करा आणि त्यांना तुम्हाला आवडणाऱ्या कोणत्याही डिलिमिटरने वेगळे करा, स्वल्पविराम आणि स्पेस म्हणा:

    =TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))

    टीप. TEXTJOIN फंक्शन केवळ Microsoft 365, Excel 2021 आणि Excel 2019 साठी Excel मध्ये उपलब्ध असल्यामुळे, सूत्र जुन्या आवृत्त्यांमध्ये कार्य करणार नाही.

    स्ट्रिंगमधून मजकूर काढण्यासाठी Regex

    वरून मजकूर काढत आहे एक्सेलमध्ये अल्फान्यूमेरिक स्ट्रिंग हे एक आव्हानात्मक काम आहे. regex सह, ते पाईसारखे सोपे होते. अंक नसलेल्या प्रत्येक गोष्टीशी जुळण्यासाठी फक्त नकारात्मक वर्ग वापरा.

    पॅटर्न : [^\d]+

    वैयक्तिक सेलमध्ये सबस्ट्रिंग मिळवण्यासाठी (स्पिल श्रेणी) , सूत्र आहे:

    =RegExpExtract(A5, "[^\d]+")

    सर्व जुळण्या एका सेलमध्ये आउटपुट करण्यासाठी, TEXTJOIN मध्ये RegExpExtract फंक्शन याप्रमाणे नेस्ट करा:

    =TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))

    यावर Regex स्ट्रिंगमधून ईमेल अॅड्रेस काढा

    अनेक भिन्न माहिती असलेल्या स्ट्रिंगमधून ईमेल अॅड्रेस काढण्यासाठी, ईमेल अॅड्रेस स्ट्रक्चरची नक्कल करणारा रेग्युलर एक्सप्रेशन लिहा.

    पॅटर्न : [\w\.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,24}

    हे रेगेक्स खंडित करणे , आम्हाला काय मिळते ते येथे आहे:

    • [\w\.\-]+ हे वापरकर्तानाव आहे ज्यामध्ये 1 किंवा अधिक अल्फान्यूमेरिक वर्ण, अंडरस्कोअर, डॉट्स आणि हायफन समाविष्ट असू शकतात.
    • @ चिन्ह
    • >सबडोमेनचे). येथे अंडरस्कोअरला परवानगी नाही, म्हणून कोणत्याही अक्षर, अंक किंवा अंडरस्कोरशी जुळणारे \w ऐवजी 3 भिन्न वर्ण संच (जसे की A-Z a-z आणि 0-9) वापरले जातात.
    • \.[A-Za-z ]{2,24} हे उच्च-स्तरीय डोमेन आहे. अप्परकेस आणि लोअरकेस अक्षरांनंतर बिंदूचा समावेश होतो. बहुतेक शीर्ष-स्तरीय डोमेन 3-अक्षरांचे असतात (उदा. .com .org, .edu, इ.), परंतु सिद्धांततः त्यात 2 ते 24 अक्षरे असू शकतात (सर्वात लांब नोंदणीकृत TLD).

    स्ट्रिंग A5 मध्ये आहे आणि A2 मध्ये पॅटर्न आहे असे गृहीत धरून, ईमेल पत्ता काढण्याचे सूत्र आहे:

    =RegExpExtract(A5, $A$2)

    ईमेलमधून डोमेन काढण्यासाठी Regex

    जेव्हा ईमेल डोमेन एक्सट्रॅक्ट करताना, मनात येणारा पहिला विचार म्हणजे कॅप्चरिंग ग्रुपचा वापर करून @ कॅरेक्टरचे लगेच फॉलो करणारा मजकूर शोधणे.

    पॅटर्न : @([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}स्ट्रिंगमधून

    तारीख काढण्यासाठी रेग्युलर एक्सप्रेशन स्ट्रिंगमध्ये तारीख कोणत्या फॉरमॅटमध्ये दिसते यावर अवलंबून असते. उदाहरणार्थ:

    1/1/21 किंवा 01/01/2021 सारख्या तारखा काढण्यासाठी, regex आहे: \d{1,2}\/\d{1,2}\/(\d {4}परिस्थिती. तरीसुद्धा, तुम्ही तुमच्या डेटासेटमध्ये वापरलेले सर्व फॉरमॅट लिहू शकता आणि ते जुळवण्याचा प्रयत्न करू शकता.

    या उदाहरणासाठी, आम्ही एक रेगेक्स तयार करणार आहोत जो यापैकी कोणत्याही फॉरमॅटमध्ये फोन नंबर काढेल:

    (१२३) ३४५-६७८९

    (१२३) ३४५ ६७८९

    (१२३)३४५६७८९

    १२३- 345-6789

    123.345.6789

    123 345 6789

    1233456789

    पॅटर्न : \(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b

    • पहिला भाग \(?\d{3} शून्याशी जुळतो किंवा एक ओपनिंग कंस त्यानंतर तीन अंक d{3}.
    • [-\. \)]* भाग म्हणजे चौरस कंसात 0 किंवा त्याहून अधिक वेळा दिसणारे कोणतेही वर्ण: हायफन, पीरियड, स्पेस किंवा क्लोजिंग कंस.
    • पुढे, आपल्याकडे पुन्हा तीन अंक आहेत d{3} त्यानंतर कोणतेही हायफन, पीरियड किंवा स्पेस [-\. ]? 0 किंवा 1 वेळा दिसत आहे.
    • त्यानंतर, चार अंकांचा एक समूह आहे \d{4}.
    • शेवटी, एक शब्द सीमा आहे \b आम्ही फोन नंबर आहोत हे परिभाषित करतो शोधणे हा मोठ्या संख्येचा भाग असू शकत नाही.

    संपूर्ण सूत्र हा आकार घेतो:

    =RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

    कृपया लक्षात ठेवा की वरील रेगेक्स काही परत येऊ शकतात चुकीचे-सकारात्मक परिणाम जसे की 123) 456 7899 किंवा (123 456 7899. खालील आवृत्ती या समस्यांचे निराकरण करते. तथापि, हे वाक्यरचना केवळ VBA RegExp फंक्शन्समध्ये कार्य करते, क्लासिक रेग्युलर एक्सप्रेशनमध्ये नाही.

    पॅटर्न : (\(\d{3}\)दोन अक्षरांमधील मजकूर काढण्यासाठी out हे दोन स्ट्रिंगमधील मजकूर काढण्यासाठी देखील कार्य करेल.

    उदाहरणार्थ, "चाचणी 1" आणि "चाचणी 2" मधील सर्वकाही मिळविण्यासाठी, खालील नियमित अभिव्यक्ती वापरा.

    पॅटर्न : चाचणी 1(.*?)चाचणी 2

    संपूर्ण सूत्र आहे:

    =AblebitsRegexExtract(A5, "test 1(.*?)test 2")

    URL मधून डोमेन काढण्यासाठी Regex

    नियमित अभिव्यक्तीसह, URL मधून डोमेन नावे काढणे हे काही क्षुल्लक काम नाही. युक्ती करणारा मुख्य घटक म्हणजे नॉन-कॅप्चरिंग गट. तुमच्या अंतिम ध्येयावर अवलंबून, खालीलपैकी एक regexes निवडा.

    सबडोमेनसह पूर्ण डोमेन नाव मिळवण्यासाठी

    पॅटर्न : (?: https?\:

    मायकेल ब्राउन हे सॉफ्टवेअर टूल्स वापरून जटिल प्रक्रिया सुलभ करण्याच्या उत्कटतेने एक समर्पित तंत्रज्ञान उत्साही आहे. टेक उद्योगातील एका दशकाहून अधिक अनुभवासह, त्यांनी Microsoft Excel आणि Outlook, तसेच Google Sheets आणि Docs मध्ये आपल्या कौशल्यांचा गौरव केला आहे. मायकेलचा ब्लॉग त्याचे ज्ञान आणि कौशल्य इतरांसोबत सामायिक करण्यासाठी समर्पित आहे, उत्पादकता आणि कार्यक्षमता सुधारण्यासाठी सुलभ टिपा आणि ट्यूटोरियल प्रदान करतो. तुम्ही अनुभवी व्यावसायिक असाल किंवा नवशिक्या असाल, मायकेलचा ब्लॉग या आवश्यक सॉफ्टवेअर टूल्सचा जास्तीत जास्त फायदा घेण्यासाठी मौल्यवान अंतर्दृष्टी आणि व्यावहारिक सल्ला देतो.