Как мне получить позицию первого совпадающего результата в регулярном выражении? См. Ниже.
Function MYMATCH(strValue As String, strPattern As String, Optional blnCase As Boolean = True, Optional blnBoolean = True) As String
Dim objRegEx As Object
Dim strPosition As Integer
' Create regular expression.
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = strPattern
objRegEx.IgnoreCase = blnCase
' Do the search match.
strPosition = objRegEx.Match(strValue)
MYMATCH = strPosition
End Function
Например, Я не совсем уверен, что возвращает .Match
(строка, целое число и т. Д.). Одно решение, которое я нашел, гласило, что я должен создать объект Match
, а затем захватить позицию оттуда, но в отличие от vb , vba не распознает объект Match
. Я также видел некоторый код вроде следующего, но я не обязательно ищу значение, просто первое размещение строки:
If allMatches.count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
В некоторой степени игнорируя любые из возможных синтаксических ошибок выше (в основном из-за того, что я меняю типы переменных вправо и влево), как мне легко / просто выполнить это ?
Спасибо!