Visual Basic for Applications:
Använda reguljära uttryck
Hur man gör:
För att använda reguljära uttryck i VBA behöver du först aktivera Microsoft VBScript Regular Expressions-biblioteket. I VBA-editorn, gå till Verktyg
-> Referenser
, och sedan kryssa i Microsoft VBScript Regular Expressions 5.5
.
Här är ett enkelt exempel för att hitta om ett mönster finns inom en sträng:
Sub FindPattern()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = True
.Pattern = "\bis\b" ' Letar efter ordet "is"
End With
Dim testString As String
testString = "This is a test string."
If regex.Test(testString) Then
MsgBox "Mönster hittat."
Else
MsgBox "Mönster ej hittat."
End If
End Sub
För att ersätta ett mönster i en sträng:
Sub ReplacePattern()
Dim regex As Object, replacedString As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = False
.Pattern = "\s" ' Matchar alla vita rymdkaraktärer
End With
replacedString = regex.Replace("This is a test string.", "_")
MsgBox replacedString ' Ger ut: "This_is_a_test_string."
End Sub
Djupdykning
Inkluderingen av reguljära uttryck i programmeringsspråk kan ofta spåras tillbaka till Unix-verktyg från 1970-talet. VBA integrerade regex genom VBScript Regular Expressions-biblioteket, vilket framhäver dess betydelse i textbearbetningsuppgifter även i applikationer som inte typiskt förknippas med tung textmanipulation som Excel eller Access.
Trots deras kraft, kan regex i VBA ibland vara mindre intuitiva eller presterande jämfört med mer moderna implementeringar i språk som Python eller JavaScript. Till exempel erbjuder Pythons re
-modul omfattande stöd för namngivna grupper och mer sofistikerade mönstermatchningsfunktioner, vilket ger en renare och potentiellt mer läsbar ansats. Dock, när man arbetar inom VBA-ekosystemet, förblir reguljära uttryck ett ovärderligt verktyg för uppgifter som kräver mönstermatchning eller textmanipulation. Effektivitetsavvägningen är ofta försumbar i ljuset av bekvämligheten och kapaciteterna som regex erbjuder när man hanterar strängar i Office-applikationer.