powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по регулярным выражениям
4 сообщений из 4, страница 1 из 1
Вопрос по регулярным выражениям
    #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
Вопрос по регулярным выражениям
    #32814868
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос закрыт :)

Ответ, как ни странно, лежал в документации.
Оказывается, надо использовать коллекцию SubMatches объекта Match (который в свою очередь входит в коллекцию MatchCollection, которую возвращает функция Execute объекта RegExp).
...
Рейтинг: 0 / 0
Вопрос по регулярным выражениям
    #32814872
Фотография 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
Вопрос по регулярным выражениям
    #32814936
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, PA ...
Где ж ты был два часа назад :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по регулярным выражениям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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