VBA предлагает позитивные и негативные взгляды, но скорее непоследовательно.
Лучший пример использования Regex с VBA, который я видел, это эта статья Патрика Мэтьюса
[Обновленный пример с использованием Execute
вместо Replace
]
Хотя я не совсем уверен в вашем использовании, вы можете использовать такую функцию с
- пропускает любые слова, начинающиеся с A
для всех слов, не начинающихся с a, он возвращает все, начиная со второго символа (используя субматч - шаблон внутри (
и )
- субматч 1 -
Sub TestString()
MsgBox ReducedText("cfat dcat")
MsgBox ReducedText("Sat all over the hat again")
End Sub
Function ReducedText(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Dim objRegM As Object
Dim strOut As String
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.IgnoreCase = True
'not needed if matching the whole string
.Global = True
.Pattern = "\b[^a\s]([a-z]+)"
If .test(strIn) Then
Set objRegMC = .Execute(strIn)
For Each objRegM In objRegMC
strOut = strOut & objRegM.submatches(0) & vbNewLine
Next
ReducedText = strOut
Else
ReducedText = "Starts with A"
End If
End With
End Function