VBA RegEx - VBA एक्सेल में नियमित अभिव्यक्ति का उपयोग कैसे करें? (उदाहरण)

Excel VBA में RegEx क्या है?

RegEx वीबीए एक्सेल में " नियमित अभिव्यक्ति " के लिए खड़ा है और पात्रों का एक क्रम है जो मूल्यों के एक स्ट्रिंग में वर्णों के विशिष्ट पैटर्न को खोजने के लिए खोज पैटर्न को परिभाषित करता है। एक सरल शब्द में, "हम एक नियमित अभिव्यक्ति पैटर्न बना सकते हैं और इसका उपयोग उस पैटर्न की स्ट्रिंग को खोजने के लिए कर सकते हैं।"

VBA RegEx एक ऑब्जेक्ट मॉडल है। मुझे पता है कि यह स्पष्टीकरण को देखकर डराना है, लेकिन बात यह है कि वस्तु की प्रकृति। एक बात जो आपको यहां याद रखनी होगी, वह है VBA RegEx (रेगुलर एक्सप्रेशन) एक टेक्स्ट फंक्शन ऑब्जेक्ट है, जैसे हमारे अन्य टेक्स्ट फंक्शन्स, "LEFT, RIGHT, MID।"

Excel VBA में RegEx को कैसे सक्षम करें?

जैसा कि मैंने VBA को बताया, RegEx, VBA में एक वस्तु मॉडल है, जैसे "MS Word" और "MS PowerPoint" जैसे हमारे बाहरी सॉफ़्टवेयर। इसी तरह, RegEx भी एक घटक वस्तु मॉडल (COM) है, जिसे हमें VBA संपादक में संदर्भित करने की आवश्यकता है। RegEx को सक्षम करने के लिए, नीचे दिए गए चरणों का पालन करें।

चरण 1: विज़ुअल बेसिक एडिटर (Alt + F11) पर जाएं

चरण 2: उपकरण और संदर्भ पर जाएं।

चरण 3: अब, आप VBA प्रोजेक्ट के संदर्भ देखेंगे। नीचे स्क्रॉल करें और "Microsoft VBScript नियमित अभिव्यक्ति 5.5" चुनें।

स्टेप 4: अब ओके पर क्लिक करें। हम इस RegEx ऑब्जेक्ट को अब VBA कोडिंग में एक्सेस कर सकते हैं।

उदाहरण - अब, मैं आपको एक सरल उदाहरण दिखाऊंगा। मान लें कि आपके पास "बिक्री 2019, बिक्री 2018 और बिक्री 2017" शब्द हैं। यदि आप पैटर्न को (0 - 7) के रूप में परिभाषित करते हैं, तो यह 0 से 7 के बीच की सभी संख्याओं से मेल खाता है, इसलिए हमारे मैच प्रत्येक स्ट्रिंग में 201, 201 और 2017 होंगे।

VBA RegEx पैटर्न

VBA RegEx फ़ंक्शन का पैटर्न डराने वाला लगता है, और पैटर्न को समझने में कुछ समय लगता है। हम यहां दो तरह के पात्रों को देख सकते हैं, एक है "लिटरल कैरेक्टर", और दूसरा है "मेटाचैटर्स।"

  • शाब्दिक वर्ण प्रदान किए गए स्ट्रिंग के सटीक मिलान की खोज करते हैं। उदाहरण के लिए, शाब्दिक वर्ण अनुक्रम "EFG" बस दिए गए पाठ में "EFG" के सभी मैचों को देखता है।
  • Metacharacters RegEx पैटर्न में सटीक अर्थ के साथ वर्णों के संयोजन के अलावा कुछ भी नहीं हैं। यह शाब्दिक वर्णों की तुलना में पूरी तरह से अलग है यह कवर करने के लिए एक बहुत बड़ा विषय है। नीचे कुछ महत्वपूर्ण वाक्यविन्यास दिए गए हैं।
वाक्य - विन्यास विवरण उदाहरण उदाहरण मैच
यह इनपुट स्ट्रिंग के किसी एक वर्ण से मेल खाता है। पीटी पालतू पशु। पॉट, पुट, पैटर्न
() यह किसी इनपुट स्ट्रिंग के ब्रैकेट के बीच किसी एक वर्ण से मेल खाता है। (पीटी) यह पी या टी से मेल खाता है
(^) यह किसी एकल वर्ण से मेल खाता है, इनपुट स्ट्रिंग के ब्रैकेट के बीच नहीं। (^) यह न तो p या t से मेल खाता है
(पहला आखरी) यह ब्रैकेट में प्रदान की गई सीमा के बीच किसी भी वर्ण से मेल खाता है। (0-9) यह 0 से 9 तक किसी भी अंक से मेल खाता है
(az) यह ए से जेड तक किसी भी निचले मामले के चरित्र से मेल खाता है
(AZ) यह ए से जेड तक किसी भी ऊपरी मामले के चरित्र से मेल खाता है
_ s यह किसी भी सफेद अंतरिक्ष वर्ण से मेल खाता है। - स्पेस, नई लाइन, या टैब चरित्र से मेल खाता है
S यह किसी भी गैर-सफेद-अंतरिक्ष चरित्र से मेल खाता है - माचिस के पात्र स्पेस नहीं हैं, न्यू लाइन नहीं हैं, या टैब कैरेक्टर नहीं हैं
d यह किसी एक अंक के चरित्र से मेल खाता है। एसई 5 वीजी 6 5 और 6 से मेल खाता है
D यह किसी भी एकल-अंकीय चरित्र से मेल खाता है एसई 5 वीजी 6 एसईवीजी से मेल खाता है

RegEx ऑब्जेक्ट के गुण और तरीके

हमारे सभी ऑब्जेक्ट मॉडल की तरह, RegEx, का भी अपना गुण और विधियां हैं। अब हम एक एक करके विस्तार से देखेंगे।

वीबीए रेगेक्स ऑब्जेक्ट के गुण

  • पैटर्न: यह प्रदान की गई स्ट्रिंग से मेल खाने के लिए उपयोग किया जाता है।
  • मामले को अनदेखा करें: यह अपरकेस और लोअरकेस वर्णों को अनदेखा करना है।
  • ग्लोबल: यदि आप पैटर्न में सभी मैच ढूंढना चाहते हैं, तो TRUE तर्क है, या फिर पहला मैच मिल जाएगा।
  • मल्टी-लाइन: यदि आप नई लाइन ब्रेक को ढूंढना चाहते हैं, तो आप इसका उपयोग कर सकते हैं।

Methods of RegEx Object

  • Test: This is to test whether the pattern can be found in the provided string. This will return TRUE if found or else FALSE.
  • Execute: This will return all the matches of the pattern against the finding string.
  • Replace: This will replace the search string with the new string.

Example of RegEx in VBA Excel

Now take a look at the below example VBA code.

Code:

Sub RegEx_Example() Dim RegEx As Object, MyString As String Set RegEx = CreateObject("VBScript.RegExp") With RegEx .Pattern = "(0-9)+" End With MyString = "Date of Birth year is 1985" MsgBox RegEx.Test(MyString) MyString = "Date of Birth year is ???" MsgBox RegEx.Test(MyString) End Sub

regular

उपरोक्त कोड में, हमने संख्या को 0 से 9 तक खोजने के लिए पैटर्न निर्धारित किया है।

RegEx के साथ। पाटर्न = "(0-9) +" के साथ अंत

तब चर MyString = "जन्म तिथि 1985 है" यह मान 0 से 9 तक रखता है, इसलिए हमारा संदेश बॉक्स TRUE वापस कर देगा।

MyString = "जन्म वर्ष की तारीख है ???" 0 से 9 तक कोई संख्या नहीं है, इसलिए संदेश बॉक्स परिणाम के रूप में FALSE लौटाएगा।

दिलचस्प लेख...