सामग्री सारणी
या ट्युटोरियलमध्ये, आम्ही एक्सेलमधील स्ट्रिंग्स जुळवण्यासाठी regex कसे वापरावे यावर सखोल विचार करू.
जेव्हा तुम्हाला एका श्रेणीमध्ये विशिष्ट मूल्य शोधण्याची आवश्यकता असते सेलचे, तुम्ही MATCH किंवा XMATCH फंक्शन वापराल. सेलमध्ये विशिष्ट स्ट्रिंग शोधताना, FIND आणि SEARCH फंक्शन्स उपयोगी येतात. आणि सेलमध्ये दिलेल्या पॅटर्नशी जुळणारी माहिती आहे हे तुम्हाला कसे कळेल? स्पष्टपणे, नियमित अभिव्यक्ती वापरून. पण आउट ऑफ द बॉक्स एक्सेल रेगेक्सला सपोर्ट करत नाही! काळजी करू नका, आम्ही यासाठी सक्ती करू :)
स्ट्रिंग जुळण्यासाठी एक्सेल VBA Regex फंक्शन
हे हेडिंगवरून अगदी स्पष्ट आहे, रेग्युलर एक्सप्रेशन वापरण्यासाठी Excel मध्ये, तुम्हाला तुमचे स्वतःचे कार्य तयार करावे लागेल. सुदैवाने, एक्सेलच्या VBA मध्ये एक इनबिल्ट RegExp ऑब्जेक्ट आहे, जो तुम्ही खाली दाखवल्याप्रमाणे तुमच्या कोडमध्ये वापरू शकता:
सार्वजनिक कार्य RegExpMatch(input_range as Range, pattern as string , optional match_case as boolean = True) म्हणून व्हेरिएंट Dim arRes() व्हेरिएंट अॅरे म्हणून परिणाम संचयित करण्यासाठी Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols लाँग 'स्रोत श्रेणीतील वर्तमान पंक्तीची अनुक्रमणिका, स्त्रोत श्रेणीतील वर्तमान स्तंभाची अनुक्रमणिका, पंक्तींची संख्या, संख्या कॉलम्स ऑन एरर GoTo ErrHandl RegExpMatch = arRes सेट करा regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = नमुना regex.Global = True regex.MultiLine = True असल्यास 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)
किंवा तुम्ही एक सोपा रेग्युलर वापरू शकता लोअरकेस किंवा अपरकेस कॅरेक्टर सेटसह ईमेल प्रमाणीकरणासाठी अभिव्यक्ती:
पॅटर्न : \b[\w\.\-]+@[a-z0-9]+[a- z0-9\.\-]*[a-z0-9]+\.[a-z]{2,24}\b
परंतु तुमचे सूत्र केस-संवेदनशील बनवा:
=RegExpMatch(A5, $A$2, FALSE)
Match regex सह एक्सेल IF सूत्र
इनबिल्ट आणि कस्टम या वस्तुस्थितीमुळेफंक्शन्स चांगल्या प्रकारे चालतात, तुम्हाला एकाच सूत्रात त्यांचा एकत्र वापर करण्यापासून रोखेल असे काहीही नाही.
रेग्युलर एक्सप्रेशन जुळले असल्यास काहीतरी परत करण्यासाठी किंवा मोजण्यासाठी आणि जुळत नसल्यास, कस्टम RegExpMatch एम्बेड करा IF:
IF(RegExpMatch(…), [value_if_true], [value_if_false])उदाहरणार्थ, A5 मधील स्ट्रिंगमध्ये वैध ईमेल पत्ता असल्यास, तुम्ही "होय" परत करू शकता; अन्यथा "नाही".
=IF(RegExpMatch(A5, $A$2,), "Yes", "No")
रेजेक्स जुळले असल्यास मोजा
कारण नेटिव्ह एक्सेल फंक्शन्स रेग्युलर एक्स्प्रेशनला सपोर्ट करत नाहीत. COUNTIS किंवा COUNTIFS फंक्शनमध्ये थेट regex टाकणे शक्य नाही. सुदैवाने, तुम्ही आमचे सानुकूल फंक्शन वापरून या कार्यक्षमतेचे अनुकरण करू शकता.
समजा तुम्ही फोन नंबर जुळण्यासाठी रेजेक्स वापरला आहे आणि कॉलम B मध्ये परिणाम आउटपुट केले आहे. किती सेलमध्ये फोन नंबर आहेत हे शोधण्यासाठी, तुम्हाला फक्त B5:B9 मध्ये सत्य मूल्ये मोजण्यासाठी. आणि हे मानक COUNTIF सूत्र वापरून सहज करता येते:
=COUNTIF(B5:B9, TRUE)
तुमच्या वर्कशीटमध्ये कोणतेही अतिरिक्त स्तंभ नको आहेत? हरकत नाही. आमचे सानुकूल फंक्शन एका वेळी अनेक सेलवर प्रक्रिया करू शकते आणि एक्सेलचे SUM अॅरेमध्ये मूल्ये जोडू शकते हे लक्षात ठेवून, तुम्ही काय कराल ते येथे आहे:
- RegExpMatch ला श्रेणी संदर्भ द्या, जेणेकरून ते एक सत्य आणि असत्य मूल्यांचा अॅरे.
- तार्किक मूल्यांवर जबरदस्ती करण्यासाठी दुहेरी नकार (--) वापरा आणिशून्य.
- परिणामी अॅरेमध्ये 1 आणि 0 जोडण्यासाठी SUM फंक्शन मिळवा.
=SUM(--RegExpMatch(A5:A9, $A$2))
Regex जुळणी Ultimate Suite
सह आमच्या अल्टीमेट सूटचे वापरकर्ते त्यांच्या वर्कबुकमध्ये कोणताही VBA कोड न जोडता चार शक्तिशाली Regex फंक्शन्सचा लाभ घेऊ शकतात कारण अॅड-इन इन्स्टॉलेशन दरम्यान ते एक्सेलमध्ये सहजतेने एकत्रित केले जातात. आमची सानुकूल कार्ये मानक .NET RegEx इंजिनद्वारे प्रक्रिया केली जातात आणि पूर्ण-वैशिष्ट्यीकृत क्लासिक नियमित अभिव्यक्तींना समर्थन देतात.
कस्टम RegexMatch फंक्शन कसे वापरावे
तुमच्याकडे Ultimate Suite ची नवीनतम आवृत्ती स्थापित केली आहे असे गृहीत धरून ( 2021.4 किंवा नंतर), तुम्ही दोन सोप्या चरणांमध्ये Regex जुळणी फॉर्म्युला तयार करू शकता:
- Ablebits Data टॅबवर, Text गटामध्ये, क्लिक करा Regex Tools .
- निवडा स्रोत स्ट्रिंग्स.
- तुमचा पॅटर्न एंटर करा.
- जुळणे पर्याय निवडा.
- परिणाम व्हॅल्यू म्हणून नव्हे तर सूत्र म्हणून मिळवण्यासाठी, <निवडा 8>फॉर्म्युला म्हणून घाला चेक बॉक्स.
- मॅच बटणावर क्लिक करा.
काही क्षणानंतर, AblebitsRegexMatch फंक्शन तुमच्या डेटाच्या उजवीकडे एका नवीन कॉलममध्ये समाविष्ट केले जाते.
खालील स्क्रीनशॉटमध्ये, फंक्शन कॉलम A मधील स्ट्रिंगमध्ये 7-अंकी आहेत की नाही हे तपासते. संख्या किंवा नाही.
टिपा:
- कार्य tion घातली जाऊ शकते थेट सेलमध्ये मानक Insert Function डायलॉग बॉक्स द्वारे, जेथे ते AblebitsUDFs अंतर्गत वर्गीकृत केले जाते.
- डिफॉल्टनुसार, सूत्रामध्ये नियमित अभिव्यक्ती जोडली जाते, परंतु तुम्ही ते देखील ठेवू शकता ते एका वेगळ्या सेलमध्ये. यासाठी, दुसऱ्या वितर्कासाठी फक्त सेल संदर्भ वापरा.
- डिफॉल्टनुसार, फंक्शन केस-सेन्सिटिव्ह आहे. केस-असंवेदनशील जुळणीसाठी, (?i) पॅटर्न वापरा.
अधिक माहितीसाठी, कृपया AblebitsRegexMatch फंक्शन पहा.
एक्सेलमध्ये रेग्युलर एक्सप्रेशन मॅचिंग कसे करायचे ते असे आहे. वाचल्याबद्दल मी तुमचा आभारी आहे आणि पुढच्या आठवड्यात तुम्हाला आमच्या ब्लॉगवर भेटण्यास उत्सुक आहे!
उपलब्ध डाउनलोड
Excel Regex Match उदाहरणे (.xlsm फाइल)
अल्टीमेट सूट 14- दिवस पूर्ण-कार्यक्षम आवृत्ती (.exe फाइल)
जर cntInputRows = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes(1 ते cntInputRows, 1 ते cntInputCols) साठी iInputCurRow = 1 ते cntInputRows साठी iInputCurCol = 1 cntInputRows साठी iInputCurCol = 1. .Cells(iInputCurRow, iInputCurCol).Value) पुढील पुढील RegExpMatch = arRes एक्झिट फंक्शन ErrHandl: RegExpMatch = CVErr(xlErrValue) फंक्शन समाप्त कराVBA एडिटरमध्ये कोड पेस्ट करा आणि तुमचे नवीन फंक्शन Exp Ex2 आहे. वापरासाठी तयार. तुम्हाला VBA चा फारसा अनुभव नसल्यास, हे मार्गदर्शक उपयोगी ठरू शकते: Excel मध्ये VBA कोड कसा घालायचा.
टीप. कोड टाकल्यानंतर, तुमची फाईल मॅक्रो-सक्षम वर्कबुक (.xlsm) म्हणून सेव्ह करण्याचे लक्षात ठेवा.
RegExpMatch सिंटॅक्स
RegExpMatch फंक्शन स्त्रोत स्ट्रिंगचा कोणताही भाग रेग्युलर एक्सप्रेशनशी जुळतो की नाही हे तपासते. परिणाम हे बुलियन मूल्य आहे: किमान एक जुळणी आढळल्यास सत्य, अन्यथा असत्य.
आमच्या सानुकूल फंक्शनमध्ये 3 वितर्क आहेत - पहिले दोन आवश्यक आहेत आणि शेवटचा पर्यायी आहे:
RegExpMatch(मजकूर , नमुना, [match_case])कुठे:
- मजकूर (आवश्यक) - शोधण्यासाठी एक किंवा अधिक स्ट्रिंग. सेल किंवा श्रेणी संदर्भ म्हणून पुरवले जाऊ शकतात.
- पॅटर्न (आवश्यक) - जुळण्यासाठी नियमित अभिव्यक्ती. फॉर्म्युलामध्ये थेट ठेवल्यावर, पॅटर्न दुहेरी अवतरणांमध्ये संलग्न करणे आवश्यक आहे.
- Match_case (वैकल्पिक) - जुळणी परिभाषित करतेप्रकार TRUE किंवा वगळल्यास (डीफॉल्ट), केस-संवेदनशील जुळणी केली जाते; असत्य असल्यास - केस-संवेदी RegExpMatch बद्दल माहिती असणे आवश्यक आहे
आम्ही व्यावहारिक गणनांकडे जाण्यापूर्वी, कृपया खालील मुद्द्यांकडे लक्ष द्या जे काही तांत्रिकता स्पष्ट करतात:
- फंक्शन सिंगल सेल<9 वर प्रक्रिया करू शकते> किंवा सेलची श्रेणी . नंतरच्या प्रकरणात, परिणाम शेजारच्या सेलमध्ये डायनॅमिक अॅरे किंवा स्पिल रेंजच्या स्वरूपात परत केले जातात, जसे या उदाहरणात दाखवले आहे.
- डिफॉल्टनुसार, फंक्शन केस-सेन्सिटिव्ह<आहे. 9>. मजकूर केसकडे दुर्लक्ष करण्यासाठी, match_case युक्तिवाद FALSE वर सेट करा. VBA Regexp मर्यादांमुळे, केस-असंवेदनशील नमुना (?i) समर्थित नाही.
- वैध पॅटर्न न आढळल्यास, फंक्शन FALSE दाखवते; पॅटर्न अवैध असल्यास, एक #VALUE! त्रुटी आढळते.
खाली, तुम्हाला प्रात्यक्षिक हेतूंसाठी तयार केलेली काही regex जुळणी उदाहरणे सापडतील. तुमच्या वास्तविक वर्कशीटमधील इनपुट डेटाच्या विस्तृत श्रेणीसह आमचे नमुने दोषरहितपणे कार्य करतील याची आम्ही हमी देऊ शकत नाही. उत्पादनात टाकण्यापूर्वी, तुमच्या गरजेनुसार आमच्या नमुन्यांचे नमुने तपासण्याचे आणि समायोजित करण्याचे सुनिश्चित करा.
एक्सेलमधील स्ट्रिंग्स जुळवण्यासाठी रेगेक्स कसे वापरावे
जेव्हा तुम्हाला सर्व स्ट्रिंग जुळवायची असतील तेव्हा समान नमुना,रेग्युलर एक्स्प्रेशन्स हा एक आदर्श उपाय आहे.
समजा तुमच्याकडे सेलची श्रेणी (A5:A9) आहे ज्यामध्ये काही वस्तूंबद्दल विविध तपशील आहेत. तुम्हाला कोणत्या सेलमध्ये SKU आहेत हे जाणून घ्यायचे आहे. प्रत्येक 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 सारख्या मोठ्या स्ट्रिंगचा भाग नाही.
पॅटर्न स्थापित केल्यामुळे, आपण सूत्र लिहिण्याकडे पुढे जाऊ शकतो. मूलत:, सानुकूल फंक्शन वापरणे मूळ फंक्शनपेक्षा वेगळे नाही. तुम्ही फॉर्म्युला टाइप करताच, Excel च्या AutoComplete ने सुचवलेल्या यादीमध्ये फंक्शनचे नाव दिसेल. तथापि, डायनॅमिक अॅरे एक्सेल (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 की एकत्र दाबून पूर्ण केले जाते.
क्रमांक जुळण्यासाठी Regex
0 ते 9 मधील कोणताही एक अंक जुळण्यासाठी, regex मध्ये \d वर्ण वापरा. तुमच्या विशिष्ट कार्यावर अवलंबून, एक योग्य क्वांटिफायर जोडा किंवा अधिक जटिल नमुना तयार करा.
कोणत्याही संख्येशी जुळण्यासाठी Regex
कोणत्याही लांबीच्या कोणत्याही संख्येशी जुळण्यासाठी, / च्या नंतर + क्वांटिफायर ठेवा. d वर्ण, जे 1 किंवा अधिक अंक असलेली संख्या शोधण्यासाठी म्हणते.
पॅटर्न : \d+
=RegExpMatch(A5:A9, "\d+")
विशिष्ट लांबीच्या संख्येशी जुळण्यासाठी Regex
तुमचे ध्येय ठराविक अंक असलेली संख्यात्मक मूल्ये जुळवायचे असल्यास, योग्य क्वांटिफायरसह \d एकत्र वापरा.
उदाहरणार्थ, तंतोतंत 7 अंक असलेल्या बीजक क्रमांकाशी जुळण्यासाठी, तुम्ही \d{7} वापराल. तथापि, कृपया लक्षात ठेवा की ते 7 शी जुळेलअपेक्षेप्रमाणे:
टिपा:
- आंतरराष्ट्रीय कोड तपासलेले नाहीत, त्यामुळे ते उपस्थित असू शकतात किंवा नसू शकतात.
- रेग्युलर एक्स्प्रेशन्समध्ये, \s म्हणजे स्पेस, टॅब, कॅरेज रिटर्न किंवा नवीन लाईन यासारख्या कोणत्याही व्हाइटस्पेस कॅरेक्टरसाठी. फक्त रिक्त स्थानांना परवानगी देण्यासाठी, [-\ वापरा. ] ऐवजी [-\.\s].
- [^13] 1 किंवा 3 नसलेल्या कोणत्याही एका वर्णाशी जुळेल.
- [^1-3] 1 नसलेल्या कोणत्याही एका वर्णाशी जुळेल, 2 किंवा 3 (म्हणजे 1 ते 3 पर्यंतचा कोणताही अंक).
- वरील रेगेक्स फक्त सिंगल-लाइन स्ट्रिंगसाठी कार्य करते. मिल्टी-लाइन स्ट्रिंग्सच्या बाबतीत, ^ आणि $ अक्षरे इनपुट स्ट्रिंगच्या सुरूवातीस आणि शेवटच्या ऐवजी प्रत्येक ओळीच्या सुरूवातीस आणि शेवटी जुळतात, म्हणून regex फक्त पहिल्या ओळीत शोधतो.
- विशिष्ट मजकुरासह सुरू न होणार्या स्ट्रिंग्सशी जुळण्यासाठी, ^(?!lemons).*$
- सारखे रेग्युलर एक्सप्रेशन वापरा. स्ट्रिंग्स जे समाप्त होत नाहीत विशिष्ट मजकुरासह जुळण्यासाठी, समाविष्ट कराशोध पॅटर्नमध्ये शेवटची स्ट्रिंग अँकर: ^((?!lemons$).)*$
रेजेक्स टू नॉट मॅच कॅरेक्टर
विशिष्ट कॅरेक्टर नसलेल्या स्ट्रिंग्स शोधण्यासाठी, तुम्ही जुळणारे नकारार्थी कॅरेक्टर क्लासेस [^ ] वापरू शकता कंसात काहीही नाही. उदाहरणार्थ:
फोन नंबरच्या सूचीमध्ये, समजा तुम्हाला ते शोधायचे आहेत ज्यांना देश कोड नाही. कोणत्याही आंतरराष्ट्रीय कोडमध्ये + चिन्ह समाविष्ट असते हे लक्षात ठेवून, तुम्ही अधिक चिन्ह नसलेल्या स्ट्रिंग शोधण्यासाठी [^\+] वर्ण वर्ग वापरू शकता. हे लक्षात घेणे महत्त्वाचे आहे की वरील अभिव्यक्ती + नसलेल्या कोणत्याही एका वर्णाशी जुळते. कारण फोन नंबर स्ट्रिंगमध्ये कुठेही असू शकतो, अगदी सुरुवातीलाच आवश्यक नाही, प्रत्येक पुढील वर्ण तपासण्यासाठी * क्वांटिफायर जोडला जातो. प्रारंभ ^ आणि अंत $ अँकर हे सुनिश्चित करतात की संपूर्ण स्ट्रिंगवर प्रक्रिया केली गेली आहे. परिणामस्वरुप, आम्हाला खालील रेग्युलर एक्सप्रेशन मिळते जे म्हणतात की "स्ट्रिंगमधील कोणत्याही स्थितीत + वर्ण जुळत नाही."
पॅटर्न :^[^\+]*$
=RegExpMatch(A5, "^[^\+]*$")
रेजेक्स टू नॉट मॅच स्ट्रिंग
यासाठी कोणतेही विशेष रेग्युलर एक्सप्रेशन सिंटॅक्स नसले तरी विशिष्ट स्ट्रिंगशी जुळत नाही, तुम्ही नकारात्मक लूकअहेड वापरून या वर्तनाचे अनुकरण करू शकता.
समजा तुम्हाला स्ट्रिंग शोधायचे आहेत ज्यात "लेमन" हा शब्द असलेला नाही . हे रेग्युलर एक्सप्रेशन एक उपचार कार्य करेल:
पॅटर्न : ^((?!lemons).)*$
साहजिकच, येथे काही स्पष्टीकरण आवश्यक आहे. पुढे "लिंबू" हा शब्द नाही का हे पाहण्यासाठी नकारात्मक लूकअहेड (?!lemons) उजवीकडे पाहतो. जर "लिंबू" नसेल, तर बिंदू रेषा खंडाशिवाय कोणत्याही वर्णाशी जुळतो. वरील अभिव्यक्ती फक्त एक तपासणी करते आणि * क्वांटिफायर ^ द्वारे अँकर केलेल्या स्ट्रिंगच्या सुरूवातीपासून ते $ ने अँकर केलेल्या स्ट्रिंगच्या शेवटपर्यंत शून्य किंवा अधिक वेळा पुनरावृत्ती करते.
मजकूर केसकडे दुर्लक्ष करण्यासाठी, आमचे फंक्शन केस-असंवेदनशील बनवण्यासाठी आम्ही तिसरा युक्तिवाद FALSE वर सेट करतो:
=RegExpMatch(A5, $A$2, FALSE)
टिपा आणि नोट्स:
केस असंवेदनशील जुळणी
क्लासिक रेग्युलर एक्सप्रेशनमध्ये, यासाठी एक विशेष पॅटर्न आहे केस-असंवेदनशील जुळणी (?i), जे VBA RegExp मध्ये समर्थित नाही. या मर्यादेवर मात करण्यासाठी, आमचे कस्टम फंक्शन match_case नावाचा 3रा पर्यायी युक्तिवाद स्वीकारतो. केस-असंवेदनशील जुळणी करण्यासाठी, फक्त ते FALSE वर सेट करा.
तुम्हाला 1-मार्च-22 किंवा 01-मार-2022 सारख्या तारखा ओळखायच्या आहेत असे समजा. dd-mmm-yyyy आणि d-mmm-yy फॉरमॅट जुळण्यासाठी, आम्ही खालील रेग्युलर एक्सप्रेशन वापरत आहोत.
पॅटर्न : \b\d{1,2}-(जानेस्ट्रिंगमध्ये 10-अंकी किंवा 100-अंकी क्रमांकासह कुठेही अंक. तुम्ही जे शोधत आहात ते हे नसल्यास, दोन्ही बाजूंना सीमा \b शब्द टाका.
पॅटर्न : \b\d{7}\b
=RegExpMatch(A5:A9, "\b\d{7}\b")
फोन नंबर जुळण्यासाठी Regex
फोन नंबर विविध फॉरमॅटमध्ये लिहिता येत असल्याने, त्यांच्याशी जुळण्यासाठी अधिक परिष्कृत रेग्युलर एक्सप्रेशन आवश्यक आहे.
खालील डेटासेटमध्ये, आम्ही 10-अंकी संख्या शोधत आहोत ज्यात पहिल्या 2 गटांमध्ये 3 अंक आहेत आणि शेवटच्या गटात 4 अंक आहेत. गटांना पीरियड, हायफन किंवा स्पेससह वेगळे केले जाऊ शकते. पहिला गट कंसात बंद केला जाऊ शकतो किंवा नसू शकतो.
नमुना: (\(\d{3}\)