Säännöllisten lausekkeiden käyttö

Visual Basic for Applications:
Säännöllisten lausekkeiden käyttö

Kuinka:

Jotta voisit käyttää säännöllisiä lausekkeita VBAssa, sinun täytyy ensin ottaa käyttöön Microsoft VBScript Regular Expressions -kirjasto. VBA-editorissa, mene Työkalut -> Viitteet, ja sitten valitse Microsoft VBScript Regular Expressions 5.5.

Tässä on perusesimerkki löytääksesi, esiintyykö kuvio merkkijonossa:

Sub FindPattern()
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")

    With regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' Etsii sanaa "is"
    End With
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "Kuvio löytyi."
    Else
        MsgBox "Kuviota ei löytynyt."
    End If
End Sub

Kuvion korvaamiseksi merkkijonossa:

Sub ReplacePattern()
    Dim regex As Object, replacedString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' Vastaa mitä tahansa välilyöntimerkkiä
    End With
    
    replacedString = regex.Replace("This is a test string.", "_")
    MsgBox replacedString  ' Tulostaa: "This_is_a_test_string."
End Sub

Syvä sukellus

Säännöllisten lausekkeiden sisällyttäminen ohjelmointikieliin juontaa usein juurensa 1970-luvun Unix-työkaluihin. VBA integroi regexin VBScript Regular Expressions -kirjaston kautta, mikä korostaa sen merkitystä tekstinkäsittelytehtävissä jopa sovelluksissa, joita ei yleisesti yhdistetä raskaaseen tekstinkäsittelyyn kuten Excel tai Access.

Vaikka niiden tehokkuus on suuri, regexit VBA:ssa voivat toisinaan olla vähemmän intuitiivisia tai suorituskykyisiä verrattuna modernimpiin toteutuksiin kielissä kuten Python tai JavaScript. Esimerkiksi Pythonin re moduuli tarjoaa laajat tukitoiminnot nimetyille ryhmille ja monimutkaisemmille kuvionvastineominaisuuksille, tarjoten puhtaamman ja mahdollisesti luettavamman lähestymistavan. Kuitenkin työskennellessä VBA-ekosysteemissä, säännölliset lausekkeet pysyvät arvokkaana työkaluna tehtävissä, jotka vaativat kuvion vastaamista tai tekstinkäsittelyä. Tehokkuuden kompromissi on usein merkityksetön ottaen huomioon mukavuuden ja kyvykkyydet, joita regex tarjoaa käsiteltäessä merkkijonoja Office-sovelluksissa.