powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RegExp - нужна помощь при создании шаблона
9 сообщений из 9, страница 1 из 1
RegExp - нужна помощь при создании шаблона
    #37706828
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день.
Что-то човсем у меня не получается создать шаблон регулярного выражения.
Дано:
Строка вида
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Событие: тест75
Параметр: п1
Время:13:00
Событие: тест1
Параметр: п1
Время:13:00
Событие: тест2
Параметр: п2ааааааааааааа
Время:13:03
Событие: тест1
Параметр: п67
Время:18:00
Событие: тест6
Параметр: п1
Время:13:00


В результате хочу получить на выходе
Код: xml
1.
2.
3.
4.
5.
6.
Событие: тест1
Параметр: п1
Время:13:00
Событие: тест1
Параметр: п67
Время:18:00


Как пройтись циклом по всей строке и найти все вхождения я знаю
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Expr.Global = True
Expr.IgnoreCase = True

 'Me.Winsock2.GetData s
 Set ExprMatches = Expr.Execute(s)
 For Each ExprMatch In ExprMatches
    Set ExprMatch = ExprMatches(0)
    strTMP = strTMP & ExprMatch
    
Next



А вот правильно создать
Код: vbnet
1.
Expr.Pattern 

не получается.
В нужной строке могут быть абсолютно любые символы и их кол-во может быть абсолютно разным.
Помогите плиз кто в теме.
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37706910
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно отфильтровать по названию события что ли?
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37706929
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в моем конкретном примере - да.
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37706991
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В x(y) будут находиться блоки событие-параметр-время целиком, а в x(y).Submatches(от 0 до 2) соответственно по отдельности событие:..., параметр:... и время:... каждого блока.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Sub asfasdfdsafg()
Dim rx As New RegExp, s As String, n as String
    rx.Global = True
    rx.Multiline = True
    rx.IgnoreCase = True

s = "Событие: тест75" & vbCrLf & _
    "Параметр: п1 " & vbCrLf & _
    "Время:13:00" & vbCrLf & _
    "Событие: тест1" & vbCrLf & _
    "Параметр: п1" & vbCrLf & _
    "Время:13:00" & vbCrLf & _
    "Событие: тест2" & vbCrLf & _
    "Параметр: п2ааааааааааааа" & vbCrLf & _
    "Время:13:03" & vbCrLf & _
    "Событие: тест1" & vbCrLf & _
    "Параметр: п67" & vbCrLf & _
    "Время:18:00" & vbCrLf & _
    "Событие: тест6" & vbCrLf & _
    "Параметр: п1" & vbCrLf & _
    "Время:13:00"

    n = "тест1"

    rx.Pattern = "[\r\n]*(Событие: " & n & ")[\r\n]+(Параметр:.*)[\r\n]+(Время:.*)[\r\n]*"
    
    Set x = rx.Execute(s)
End Sub
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37707112
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем то что нужно.
Я забыл указать,что в строке
Код: xml
1.
2.
3.
Событие: тест1
Параметр: п1
Время:13:00


может быть абсолютно разное кол-во строк, и разные наименования

например:
Код: xml
1.
2.
3.
4.
5.
6.
Событие: тест1
Параметр: п1
Параметр:8888
Параметр3:длодлодл
Параметр:555
Время:13:00



мне нужно выбирать подстроки вида:
"Событие: тест1"+все что угодно до слова "Событие:"
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37707212
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забудь про регулярные выражения. Они тебе тут не помогут.
Просто сделай цикл по строкам - ищешь заголовок блока. Как нашел заголовок переходишь во второй цикл в котором печатаешь строки пока не найдешь конец блока. Все.
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37707216
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
думал уже над этим.долго получается.хочется пошустрее чтоб было.
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37707225
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauzerдумал уже над этим.долго получается.хочется пошустрее чтоб было.А ты думаешь что регулярные выражения это такая магическая штука которая мгновенно угадывает где находится подстрока? ХА-ХА-ХА!
Правильно! Формула-1 не устраивает, слишком медленно, давайте пересядем на трактор.
...
Рейтинг: 0 / 0
RegExp - нужна помощь при создании шаблона
    #37707234
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет,просто у меня задачка нестандартная.Мне по сокету может за секуднду прийти десяток таких string с кол-вом строк в каждой по 100 , и мне нужно во время это все обрабатывать и выводить на экран информацию.Да и фильтровать нужно будет не только по слову Событие1, но и по другим тоже.Завтра буду мутить с циклами,но боюсь тут нужен какой-то другой подход.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RegExp - нужна помощь при создании шаблона
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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