Это сработало для меня:
Public Function ParseComment(strComment As String) As String
Dim regex As Object ' VBScript_RegExp_55.RegExp
Dim regexmatch As Object ' VBScript_RegExp_55.MatchCollection
Set regex = CreateObject("VBScript_RegExp_55.RegExp")
With regex
.MultiLine = False
.Global = False
.IgnoreCase = True
.Pattern = "(~[^ ~]{1,20}~)"
End With
Set regexmatch = regex.Execute(strComment)
If regexmatch.Count > 0 Then
ParseComment = regexmatch(0)
End If
End Function
Вы можете добавить дополнительный разбор в конце, если хотите удалить символы тильды.
Я проверил это на следующей строке:
ABC ~ 123aA% dwdD ~ CBA
функция возвращает ~ 123aA% dwdD ~
Забыл упомянуть, что для этого кода требуется VBScript Regular Expressions 5.5, который находится в% windir% \ system32 \ vbscript.dll \ 3, хотя код имеет позднюю привязку, поэтому вы можете просто добавить его в свой проект. 1016 *