Excel VBA Regex Match Position

Как мне получить позицию первого совпадающего результата в регулярном выражении? См. Ниже.

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 , а затем захватить позицию оттуда, но в отличие от , не распознает объект Match . Я также видел некоторый код вроде следующего, но я не обязательно ищу значение, просто первое размещение строки:

If allMatches.count <> 0 Then
    result = allMatches.Item(0).submatches.Item(0)
End If

В некоторой степени игнорируя любые из возможных синтаксических ошибок выше (в основном из-за того, что я меняю типы переменных вправо и влево), как мне легко / просто выполнить это ?

Спасибо!

7
задан Community 9 July 2018 в 18:41
поделиться