Я использую 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»?