vba положительный просмотр вперед - это слишком жадно

Я использую Access VBA для проанализировать строку с помощью регулярного выражения. Вот моя функция регулярного выражения:

Function regexSearch(pattern As String, source As String) As String

Dim re As RegExp
Dim matches As MatchCollection
Dim match As match


Set re = New RegExp
re.IgnoreCase = True

re.pattern = pattern
Set matches = re.Execute(source)


    If matches.Count > 0 Then
        regexSearch = matches(0).Value
    Else
        regexSearch = ""
    End If


End Function

Когда я тестирую ее с помощью:

regexSearch("^.+(?=[ _-]+mp)", "153 - MP 13.61 to MP 17.65")

, я ожидаю получить:

153

, потому что единственными символами между этим и первым экземпляром 'MP' являются символы из класса, указанного в смотреть вперед.

, но мое фактическое возвращаемое значение:

153 - MP 13.61 to

Почему он захватывает до второго «MP»?

9
задан sigil 28 September 2011 в 19:39
поделиться