रेगुलर एक्सप्रेशंस (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 #रेगुलर एक्सप्रेशंस #पैटर्न मैचिंग