Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по регулярным выражениям / 4 сообщений из 4, страница 1 из 1
06.12.2004, 14:59:38
    #32814610
roman10
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по регулярным выражениям
Извините, если вопрос возможно не совсем по теме. Я пытаюсь безуспешно заставить работать из Акцесса VBScript Regular Expressions 5.5. Там есть метод Execute, который возвращает коллекцию подвыражений (MatchCollection короче). Так вот такое ощущение, как не ковыряйся, но число элементов возвращается не больше одного.

Вот пример кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    Dim objRegex As New RegExp
    Dim objMatches As MatchCollection
    Dim objMatch As Match
    Dim i As Integer
    Dim strText As String
    
    objRegex.Global = True
    objRegex.Pattern = "(\d*).(\d*)"

    Set objMatches = objRegex.Execute("125.298")
    
    strText = "Matches: " & CStr(objMatches.Count) & vbCrLf
    i =  1 
    For Each objMatch In objMatches
        strText = strText & vbCrLf & "Match " &_
          CStr(i) & ": first index " & CStr(objMatch.FirstIndex) &_
          ", length " & CStr(objMatch.Length) & ", value " &_
          objMatch.Value
        i = i +  1 
    Next
    MsgBox strText

У меня всегда возвращает 1, "125.298", а по идее должен два ("125" и "298"). В чем может быть проблема? Может выражение неправильно состалено?
...
Рейтинг: 0 / 0
06.12.2004, 16:35:27
    #32814868
roman10
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по регулярным выражениям
Вопрос закрыт :)

Ответ, как ни странно, лежал в документации.
Оказывается, надо использовать коллекцию SubMatches объекта Match (который в свою очередь входит в коллекцию MatchCollection, которую возвращает функция Execute объекта RegExp).
...
Рейтинг: 0 / 0
06.12.2004, 16:35:49
    #32814872
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по регулярным выражениям
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Dim subM As Variant
    ...
    For Each objMatch In objMatches
        ...         
        For Each subM In objMatch.SubMatches
            MsgBox subM
        Next
        ...
    Next
...
Рейтинг: 0 / 0
06.12.2004, 16:57:10
    #32814936
roman10
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по регулярным выражениям
Эх, PA ...
Где ж ты был два часа назад :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по регулярным выражениям / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]