Страницы: 1
RSS
Извлечь все подстроки с помощью регулярных выражений
 

Excel 2007

Я хочу извлечь из строки с помощью регулярных выражений все подстроки между символами "/".

Код
Private Function get_all_matches(phrase)
    Dim regEx As Object
    Dim result As Variant

    Set regEx = CreateObject("vbscript.regexp")

    With regEx
        .IgnoreCase = True
        .Pattern = "/.*/"
        .Global = True
    End With

    Set result = regEx.Execute(phrase)
    Set get_all_matches = result
End Function

Использую подготовленную функцию:

Код
phrase = "where is /my/ ups /hiding/"
Set keys = get_all_matches(phrase)
Результат:
Код
keys(0).Value: "/my/ ups /hiding/".

А хотелось вот так:

Код
keys(0).Value: "/my/"
keys(1).Value: "/hiding/"

Пример прилагаю.

Был бы признателен за помощь.

 
Цитата
Михаил написал: А хотелось вот так:
А почему ' ups ' не попал в результаты?
Согласие есть продукт при полном непротивлении сторон
 
Не планировалось.

Спасибо. Вроде бы, проблема решилась паттерном  "\/(.*?)\/".
 
Без знаков "\" в #3 тоже должно работать
Владимир
 
Добрый вечер, Владимир
Цитата
sokol92 написал: Без знаков ""
Вы правы. В #1 достаточно было подавить жадность  "/.+?/" или исключить / из алфавита "/[^/]+/"
Страницы: 1
Наверх