रेगुलर एक्सप्रेशंस (RegExp)
VBA में स्ट्रिंग प्रोसेसिंग के लिए रेगुलर एक्सप्रेशंस (RegExp) बहुत शक्तिशाली हैं। जटिल पैटर्न मैचिंग, वैलिडेशन और टेक्स्ट ट्रांसफॉर्मेशन के लिए RegExp आवश्यक है।
RegExp कब उपयोग करें
- इनपुट वैलिडेशन: ईमेल, फोन नंबर, पिन कोड जांच
- डेटा एक्सट्रैक्शन: टेक्स्ट से विशिष्ट पैटर्न निकालना
- जटिल रिप्लेस: पैटर्न-आधारित टेक्स्ट परिवर्तन
- लॉग पार्सिंग: तारीख, IP एड्रेस निकालना
- डेटा क्लीनिंग: अनावश्यक कैरेक्टर हटाना
RegExp ऑब्जेक्ट बनाना
CreateObject का उपयोग (अनुशंसित)
regexp_create.bas
Sub RegExpBanaye()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d+"
Debug.Print re.Test("abc123") ' True
End Sub
チェック
CreateObject का उपयोग करें क्योंकि इसमें रेफरेंस सेटिंग की आवश्यकता नहीं होती। RegExp प्रॉपर्टीज
| प्रॉपर्टी | विवरण | डिफ़ॉल्ट |
|---|---|---|
| Pattern | सर्च पैटर्न | कोई नहीं |
| Global | सभी मैच खोजें | False |
| IgnoreCase | केस इग्नोर करें | False |
Pattern प्रॉपर्टी
pattern_example.bas
Sub PatternUdaharan()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
' अंक पैटर्न
re.Pattern = "\d+"
Debug.Print re.Test("ऑर्डर123") ' True
' ईमेल पैटर्न
re.Pattern = "[\w\.-]+@[\w\.-]+\.\w+"
Debug.Print re.Test("test@example.com") ' True
End Sub
Global प्रॉपर्टी
global_example.bas
Sub GlobalUdaharan()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d+"
' Global = False: केवल पहला मैच
re.Global = False
Dim matches As Object
Set matches = re.Execute("abc123def456")
Debug.Print "Global=False: " & matches.Count ' 1
' Global = True: सभी मैच
re.Global = True
Set matches = re.Execute("abc123def456")
Debug.Print "Global=True: " & matches.Count ' 2
End Sub
RegExp मेथड्स
| मेथड | विवरण | रिटर्न टाइप |
|---|---|---|
| Test | पैटर्न मैच जांचें | Boolean |
| Execute | मैच स्ट्रिंग प्राप्त करें | MatchCollection |
| Replace | मैच स्ट्रिंग बदलें | String |
Test मेथड
test_method.bas
Sub TestMethodUdaharan()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
' फोन नंबर फॉर्मेट (xxx-xxx-xxxx)
re.Pattern = "^\d{3}-\d{3}-\d{4}$"
Debug.Print re.Test("555-123-4567") ' True
Debug.Print re.Test("555-1234-567") ' False
End Sub
Execute मेथड
execute_method.bas
Sub ExecuteMethodUdaharan()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d+"
re.Global = True
Dim matches As Object
Set matches = re.Execute("ऑर्डर123 में 45 आइटम")
Debug.Print "मैच: " & matches.Count
Dim match As Object
For Each match In matches
Debug.Print "मूल्य: " & match.Value
Next match
End Sub
Replace मेथड
replace_method.bas
Sub ReplaceMethodUdaharan()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d+"
re.Global = True
Dim result As String
result = re.Replace("ऑर्डर123 में 45 आइटम", "X")
Debug.Print result ' ऑर्डरX में X आइटम
End Sub
सामान्य पैटर्न सिंटैक्स
| पैटर्न | विवरण | उदाहरण |
|---|---|---|
\d | कोई भी अंक (0-9) | \d+ “123” मैच करता है |
\w | वर्ड कैरेक्टर | \w+ “abc” मैच करता है |
\s | व्हाइटस्पेस | \s+ स्पेस मैच करता है |
. | कोई भी कैरेक्टर | a.c “abc” मैच करता है |
* | शून्य या अधिक | ab*c “ac” मैच करता है |
+ | एक या अधिक | ab+c “abc” मैच करता है |
? | शून्य या एक | ab?c “ac” मैच करता है |
^ | स्ट्रिंग की शुरुआत | ^नमस्ते शुरू में मैच |
$ | स्ट्रिंग का अंत | दुनिया$ अंत में मैच |
प्रैक्टिकल उदाहरण
ईमेल वैलिडेशन
email_validation.bas
Function KyaEmailVaidh(email As String) As Boolean
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "^[\w\.-]+@[\w\.-]+\.\w{2,}$"
re.IgnoreCase = True
KyaEmailVaidh = re.Test(email)
End Function
Sub TestEmailValidation()
Debug.Print KyaEmailVaidh("user@example.com") ' True
Debug.Print KyaEmailVaidh("invalid@") ' False
End Sub
फोन नंबर फॉर्मेटिंग
phone_format.bas
Function PhoneFormat(phone As String) As String
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
' सभी गैर-अंक हटाएं
re.Pattern = "\D"
re.Global = True
Dim digits As String
digits = re.Replace(phone, "")
' 10 अंक होने पर फॉर्मेट करें
If Len(digits) = 10 Then
PhoneFormat = Left(digits, 3) & "-" & _
Mid(digits, 4, 3) & "-" & _
Right(digits, 4)
Else
PhoneFormat = phone
End If
End Function
सारांश
| मेथड | उपयोग |
|---|---|
| Test | त्वरित वैलिडेशन |
| Execute | सभी मैच प्राप्त करें |
| Replace | पैटर्न-आधारित परिवर्तन |
रेगुलर एक्सप्रेशंस जटिल स्ट्रिंग प्रोसेसिंग के लिए अत्यंत शक्तिशाली हैं।
#VBA
#RegExp
#रेगुलर एक्सप्रेशंस
#पैटर्न मैचिंग