Excel में तार निकालने के लिए Regex (एक या सभी मैच)

  • इसे साझा करें
Michael Brown

विषयसूची

इस ट्यूटोरियल में, आप सीखेंगे कि किसी दिए गए पैटर्न से मेल खाने वाले सबस्ट्रिंग्स को खोजने और निकालने के लिए एक्सेल में रेगुलर एक्सप्रेशन का उपयोग कैसे करें।

माइक्रोसॉफ्ट एक्सेल टेक्स्ट निकालने के लिए कई फ़ंक्शन प्रदान करता है। कोशिकाओं से। वे कार्य आपके कार्यपत्रकों में अधिकांश स्ट्रिंग निष्कर्षण चुनौतियों का सामना कर सकते हैं। अधिकांश, लेकिन सभी नहीं। जब पाठ कार्य विफल हो जाता है, तो नियमित अभिव्यक्ति बचाव के लिए आती है। रुको... Excel में कोई RegEx फ़ंक्शन नहीं है! सच है, कोई अंतर्निर्मित कार्य नहीं है। लेकिन ऐसा कुछ भी नहीं है जो आपको अपने स्वयं के उपयोग करने से रोकेगा :)

    स्ट्रिंग निकालने के लिए एक्सेल VBA रेगेक्स फ़ंक्शन

    अपने एक्सेल में एक कस्टम रेगेक्स एक्सट्रैक्ट फ़ंक्शन जोड़ने के लिए, वीबीए संपादक में निम्न कोड पेस्ट करें। VBA में नियमित अभिव्यक्ति को सक्षम करने के लिए, हम अंतर्निहित Microsoft RegExp ऑब्जेक्ट का उपयोग कर रहे हैं। text_matches() स्ट्रिंग डिम के रूप में त्रुटि पर पूर्णांक के रूप में match_index GoTo ErrHandl RegExpExtract = "" सेट regex = CreateObject ("VBScript.RegExp") regex.pattern = pattern regex.Global = True regex.MultiLine = True if True = match_case फिर regex। इग्नोरकेस = फाल्स एल्स रेगेक्स.इग्नोरकेस = ट्रू एंड इफ सेट मैचेस = रेगेक्स.एक्सक्यूट (टेक्स्ट) इफ 0 < मिलान। गिनती तब यदि (0 = उदाहरण_संख्या) फिर रीडिमVBA RegExp, मैं आपको अगले भाग को पढ़ने के लिए प्रोत्साहित करता हूं जो बहुत अधिक शक्तिशाली .NET रेगेक्स कार्यों पर चर्चा करता है। किसी भी एक्सेल उपयोगकर्ता द्वारा लिखा जा सकता है, .NET RegEx डेवलपर का क्षेत्र है। Microsoft .NET फ्रेमवर्क पर्ल 5 के साथ संगत पूर्ण-विशेषताओं वाले रेगुलर एक्सप्रेशन सिंटैक्स का समर्थन करता है। यह लेख आपको यह नहीं सिखाएगा कि इस तरह के कार्यों को कैसे लिखना है (मैं एक प्रोग्रामर नहीं हूं और यह कैसे करना है इस पर थोड़ी सी भी जानकारी नहीं है :)

    मानक .NET RegEx इंजन द्वारा संसाधित चार शक्तिशाली कार्य पहले से ही हमारे डेवलपर्स द्वारा लिखे गए हैं और अल्टीमेट सूट में शामिल हैं। नीचे, हम विशेष रूप से एक्सेल में टेक्स्ट निकालने के लिए डिज़ाइन किए गए फ़ंक्शन के कुछ व्यावहारिक उपयोग प्रदर्शित करेंगे।

    युक्ति। .NET रेगेक्स सिंटैक्स के बारे में जानकारी के लिए, कृपया .NET रेगुलर एक्सप्रेशन भाषा देखें।

    रेगुलर एक्सप्रेशंस का उपयोग करके एक्सेल में स्टिंग निकालने का तरीका

    मान लें कि आपके पास अल्टीमेट सुइट का नवीनतम संस्करण स्थापित है, रेगुलर एक्सप्रेशन का उपयोग करके टेक्स्ट को निकालना इन दो चरणों में आता है:

    1. Ablebits Data Tab पर, Text Group में, Regex Tools पर क्लिक करें।
    2. Regex Tools फलक पर, स्रोत डेटा का चयन करें, अपना Regex पैटर्न दर्ज करें, और निकालें विकल्प चुनें। कस्टम फ़ंक्शन के रूप में परिणाम प्राप्त करने के लिए, मान नहीं, सूत्र के रूप में सम्मिलित करें चेक का चयन करेंडिब्बा। जब हो जाए, तो निकालें बटन पर क्लिक करें।

    परिणाम आपके मूल डेटा के दाईं ओर एक नए कॉलम में दिखाई देंगे:

    AblebitsRegexExtract सिंटैक्स

    हमारे कस्टम फ़ंक्शन में निम्न सिंटैक्स है:

    AblebitsRegexExtract(संदर्भ, नियमित_अभिव्यक्ति)

    कहां:

    • संदर्भ (आवश्यक) - स्रोत स्ट्रिंग वाले सेल का संदर्भ।
    • Regular_expression (आवश्यक) - मिलान करने के लिए रेगेक्स पैटर्न।

    महत्वपूर्ण नोट! फ़ंक्शन केवल उन मशीनों पर काम करता है जिनमें एक्सेल के लिए अल्टीमेट सूट स्थापित है।

    उपयोग नोट्स

    आपके सीखने की अवस्था को आसान बनाने और आपके अनुभव को और अधिक सुखद बनाने के लिए, कृपया इन बिंदुओं पर ध्यान दें:

    1. कोई सूत्र बनाने के लिए, आप हमारे Regex Tools , या Excel के Insert function डायलॉग का उपयोग कर सकते हैं, या सेल में पूरा फ़ंक्शन नाम टाइप कर सकते हैं। एक बार सूत्र डालने के बाद, आप इसे किसी भी मूल सूत्र की तरह प्रबंधित (संपादित, प्रतिलिपि या स्थानांतरित) कर सकते हैं।
    2. आपके द्वारा Regex Tools फलक पर दर्ज किया गया प्रतिमान दूसरे तर्क में जाता है। रेगुलर एक्सप्रेशन को एक अलग सेल में रखना भी संभव है। इस मामले में, दूसरे तर्क के लिए बस एक सेल संदर्भ का उपयोग करें।
    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 वर्ण हैं।
  • सभी उपडोमेन के साथ पूर्ण डोमेन नाम निकालने के लिए रेगेक्स:

    उपडोमेन के बिना द्वितीय स्तर डोमेन निकालने के लिए रेगेक्स:

    रेगुलर एक्सप्रेशंस का उपयोग करके एक्सेल में टेक्स्ट के कुछ हिस्सों को निकालने का यही तरीका है। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और अगले सप्ताह आपको हमारे ब्लॉग पर देखने के लिए उत्सुक हूं!

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

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

    अल्टीमेट सुइट परीक्षण संस्करण (.exe फ़ाइल)

    \बी(0?[0-9]मिलान। गिनती - 1 टेक्स्ट_मैच (मैच_इंडेक्स, 0) = मैच। आइटम (मैच_इंडेक्स) अगला मैच_इंडेक्स RegExpExtract = text_matches Else RegExpExtract = मैच।

    यदि आपके पास VBA के साथ थोड़ा अनुभव है, तो चरण-दर-चरण उपयोगकर्ता मार्गदर्शिका सहायक साबित हो सकती है: Excel में VBA कोड कैसे सम्मिलित करें।

    ध्यान दें। फ़ंक्शन के काम करने के लिए, अपनी फ़ाइल को मैक्रो-सक्षम कार्यपुस्तिका (.xlsm) के रूप में सहेजना सुनिश्चित करें।

    RegExpExtract सिंटैक्स

    RegExpExtract फ़ंक्शन उन मानों के लिए इनपुट स्ट्रिंग खोजता है जो रेगुलर एक्सप्रेशन से मेल खाते हैं और एक या सभी मिलानों को एक्सट्रेक्ट करते हैं।

    फ़ंक्शन में निम्न सिंटैक्स है :

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

    कहाँ:

    • Text (आवश्यक) - खोजने के लिए टेक्स्ट स्ट्रिंग।
    • पैटर्न (आवश्यक) - मिलान करने के लिए नियमित अभिव्यक्ति। जब एक सूत्र में सीधे आपूर्ति की जाती है, तो पैटर्न को दोहरे उद्धरण चिह्नों में संलग्न किया जाना चाहिए। यदि छोड़ा जाता है, तो सभी पाए गए मिलान लौटाता है (डिफ़ॉल्ट)।
    • Match_case (वैकल्पिक) - परिभाषित करता है कि टेक्स्ट केस का मिलान करना है या अनदेखा करना है। यदि TRUE या छोड़ा गया (डिफ़ॉल्ट), केस-संवेदी मिलान किया जाता है; यदि FALSE - केस-संवेदी।

    फ़ंक्शन Excel 365, Excel 2021, Excel के सभी संस्करणों में कार्य करता है2019, एक्सेल 2016, एक्सेल 2013 और एक्सेल 2010।

    RegExpExtract के बारे में आपको 4 बातें पता होनी चाहिए

    अपने एक्सेल में फ़ंक्शन का प्रभावी ढंग से उपयोग करने के लिए, ध्यान देने योग्य कुछ महत्वपूर्ण बातें हैं:

    1. डिफ़ॉल्ट रूप से, फ़ंक्शन सभी पाए गए मिलान को पड़ोसी सेल में लौटाता है, जैसा कि इस उदाहरण में दिखाया गया है। एक विशिष्ट घटना प्राप्त करने के लिए, instance_num तर्क के लिए संबंधित संख्या प्रदान करें।
    2. डिफ़ॉल्ट रूप से, फ़ंक्शन केस-संवेदी है। केस-संवेदी मिलान के लिए, match_case तर्क को FALSE पर सेट करें. वीबीए की सीमाओं के कारण, केस-असंवेदनशील निर्माण (?i) काम नहीं करेगा। 13>
    3. अगर पैटर्न अमान्य है , तो एक #VALUE! त्रुटि होती है।

    इससे पहले कि आप अपने वर्कशीट में इस कस्टम फ़ंक्शन का उपयोग करना शुरू करें, आपको यह समझने की आवश्यकता है कि यह क्या करने में सक्षम है, है ना? नीचे दिए गए उदाहरण कुछ सामान्य उपयोग के मामलों को कवर करते हैं और समझाते हैं कि डायनेमिक ऐरे एक्सेल (Microsoft 365 और Excel 2021) और पारंपरिक एक्सेल (2019 और पुराने संस्करण) में व्यवहार भिन्न क्यों हो सकता है।

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

    स्ट्रिंग से नंबर निकालने के लिए रेगेक्स

    "सरल से जटिल" तक पढ़ाने के मूल सिद्धांतों का पालन करते हुए, हम एक बहुत ही सादे मामले से शुरू करेंगे: स्ट्रिंग से संख्या निकालना।

    द आपके लिए सबसे पहले यह तय करना है कि कौन सी संख्या प्राप्त करनी है: पहली, अंतिम, विशिष्ट घटना या सभी संख्याएँ। यह देखते हुए कि \d का अर्थ 0 से 9 तक कोई भी अंक है, और + का अर्थ एक या अधिक बार है, हमारी नियमित अभिव्यक्ति इस रूप को लेती है:

    पैटर्न : \d+

    सेट करें instance_num से 1 और आपको वांछित परिणाम मिलेगा:

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

    जहां A5 मूल स्ट्रिंग है।

    सुविधा के लिए, आप इनपुट कर सकते हैं एक पूर्वनिर्धारित सेल में पैटर्न ($A$2 ) और इसके पते को $ चिह्न के साथ लॉक करें:

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

    अंतिम संख्या प्राप्त करें

    एक स्ट्रिंग में अंतिम संख्या निकालने के लिए , उपयोग करने के लिए पैटर्न यहां दिया गया है:

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

    मानव भाषा में अनुवादित , यह कहता है: एक ऐसी संख्या खोजें जो किसी अन्य संख्या के द्वारा अनुसरण नहीं की जाती है (कहीं भी, तुरंत नहीं)। इसे व्यक्त करने के लिए, हम एक नकारात्मक लुकहेड (?!.*\d) का उपयोग कर रहे हैं, जिसका अर्थ है कि पैटर्न के दाईं ओर कोई अन्य अंक (\d) नहीं होना चाहिए, भले ही इसके पहले कितने अन्य वर्ण हों।

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

    युक्तियाँ:

    • कोई विशिष्ट घटना प्राप्त करने के लिए, पैटर्न के लिए \d+ और एक उपयुक्त सीरियल का उपयोग करें instance_num के लिए नंबर।
    • सभी नंबर निकालने का फॉर्मूला अगले उदाहरण में चर्चा की गई है।

    सभी मैच निकालने के लिए रेगेक्स

    हमारे उदाहरण को थोड़ा और आगे बढ़ाते हुए, मान लीजिए कि आप एक स्ट्रिंग से सभी संख्याएँ प्राप्त करना चाहते हैं, न कि केवल एक से।

    जैसा कि आपको याद होगा, निकाले गए मिलानों की संख्या को वैकल्पिक <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

    से पाठ निकालना एक्सेल में अल्फ़ान्यूमेरिक स्ट्रिंग काफी चुनौतीपूर्ण काम है। रेगेक्स के साथ, यह पाई जितना आसान हो जाता है। जो अंक नहीं है, उसका मिलान करने के लिए केवल एक अस्वीकृत वर्ग का उपयोग करें। , सूत्र है:

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

    सभी मिलानों को एक सेल में आउटपुट करने के लिए, RegExpExtract फ़ंक्शन को TEXTJOIN में इस प्रकार नेस्ट करें:

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

    Regex to स्ट्रिंग से ईमेल पता निकालें

    बहुत सारी अलग-अलग जानकारी वाली स्ट्रिंग से ईमेल पता निकालने के लिए, एक नियमित अभिव्यक्ति लिखें जो ईमेल पता संरचना को दोहराती है।

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

    इस रेगेक्स को तोड़ना , हमें यह मिलता है:

    • [\w\.\-]+ एक उपयोगकर्ता नाम है जिसमें 1 या अधिक अल्फ़ान्यूमेरिक वर्ण, अंडरस्कोर, डॉट्स और हाइफ़न शामिल हो सकते हैं।
    • @ प्रतीक
    • [A-Za-z0-9\.\-]+ एक डोमेन नाम है जिसमें शामिल हैं: अपरकेस और लोअरकेस अक्षर, अंक, हाइफ़न और डॉट्स (मामले मेंसबडोमेन का)। यहां अंडरस्कोर की अनुमति नहीं है, इसलिए किसी भी अक्षर, अंक या अंडरस्कोर से मेल खाने वाले \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, "")

    फ़ोन नंबर निकालने के लिए रेगुलर एक्सप्रेशन

    फ़ोन नंबर कई अलग-अलग तरीकों से लिखा जा सकता है, यही कारण है कि सभी के तहत काम करने वाले समाधान के साथ आना लगभग असंभव है(\डी{4}स्ट्रिंग से

    दिनांक निकालने के लिए एक रेगुलर एक्सप्रेशन उस प्रारूप पर निर्भर करता है जिसमें दिनांक एक स्ट्रिंग के भीतर प्रकट होता है। उदाहरण के लिए:

    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} और उसके बाद कोई हाइफ़न, अवधि या स्थान [- \। ]? 0 या 1 बार दिखाई दे रहा है।
    • उसके बाद, चार अंकों का एक समूह है \d{4}।
    • अंत में, एक शब्द सीमा \b है जो परिभाषित करती है कि एक फ़ोन नंबर हम हैं खोजना बड़ी संख्या का हिस्सा नहीं हो सकता।

    पूरा सूत्र इस रूप में होता है:

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

    कृपया ध्यान रखें कि उपरोक्त रेगेक्स कुछ रिटर्न दे सकता है गलत-सकारात्मक परिणाम जैसे 123) 456 7899 या (123 456 7899। नीचे दिया गया संस्करण इन मुद्दों को ठीक करता है। हालांकि, यह सिंटैक्स केवल VBA RegExp फ़ंक्शंस में काम करता है, क्लासिक रेगुलर एक्सप्रेशन में नहीं।

    पैटर्न : (\(\d{3}\)दो वर्णों के बीच से टेक्स्ट निकालने के लिए आउट दो स्ट्रिंग्स के बीच टेक्स्ट निकालने के लिए भी काम करेगा।

    उदाहरण के लिए, "परीक्षण 1" और "परीक्षण 2" के बीच सब कुछ प्राप्त करने के लिए, निम्नलिखित रेगुलर एक्सप्रेशन का उपयोग करें।

    पैटर्न : टेस्ट 1(.*?)टेस्ट 2

    पूरा फॉर्मूला है:

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

    यूआरएल से डोमेन निकालने के लिए रेगेक्स

    रेगुलर एक्सप्रेशन के साथ भी, URL से डोमेन नाम निकालना कोई मामूली काम नहीं है। चाल करने वाला प्रमुख तत्व गैर-कैप्चरिंग समूह है। अपने अंतिम लक्ष्य के आधार पर, नीचे दिए गए रेगेक्स में से एक चुनें।

    उप डोमेन सहित पूरा डोमेन नाम प्राप्त करने के लिए

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

    माइकल ब्राउन सॉफ्टवेयर टूल्स का उपयोग करके जटिल प्रक्रियाओं को सरल बनाने के जुनून के साथ एक समर्पित प्रौद्योगिकी उत्साही है। टेक उद्योग में एक दशक से अधिक के अनुभव के साथ, उन्होंने माइक्रोसॉफ्ट एक्सेल और आउटलुक के साथ-साथ गूगल शीट्स और डॉक्स में अपने कौशल को निखारा है। माइकल का ब्लॉग अपने ज्ञान और विशेषज्ञता को दूसरों के साथ साझा करने के लिए समर्पित है, उत्पादकता और दक्षता में सुधार के लिए आसान-से-अनुसरण युक्तियाँ और ट्यूटोरियल प्रदान करता है। चाहे आप एक अनुभवी पेशेवर हों या नौसिखिए, माइकल का ब्लॉग इन आवश्यक सॉफ़्टवेयर उपकरणों से अधिकाधिक लाभ उठाने के लिए मूल्यवान अंतर्दृष्टि और व्यावहारिक सलाह प्रदान करता है।