powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные выражения
11 сообщений из 11, страница 1 из 1
Регулярные выражения
    #39296854
kos20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Помогите, пож-ста написать регулярное выражение для поиска в тексте такой вот строки " 01.03 ".

Что удалось навоять: (\d{2})\)?[- ]?

А как дописать, чтобы точка ( . ) попала и вторая часть 03 .
В регулярке не силен, поэтому прошу помощи.
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296861
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kos20,

Код: vbnet
1.
(\d{2}\.\d{2})
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296863
kos20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Спасибо! то что надо.
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296865
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(\d\d\.\d\d)

так короче
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296867
kos20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как получить вторую дату? 01.05.2015 - 01.05.2016
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296872
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kos20,

ну Вы бы хоть чуточку и голову включали. Вам дали примеры - уже по ним добавить еще точку и 4 числа не такая уж проблема. Или вопрос задайте более развернуто(например, чтобы и короткая дата выдергивалась(01.01) и с годом(01.01.2016)).
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296875
kos20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,
Сори, вопросы не связаны 1 и 2.
ответ на второй такой получается? (\d{2}\.\d{2}\.\d{4})$
А есть универсальная запись? Ну типа получить 2 дату между 01.02.2015 15.08.2015 22.02.2016
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296882
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например так: \s([\S]+)\s
этот паттерн выбирает непустую подстроку между пробелами, не содержащую пробелов
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296883
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже так

\s(\S+)\s
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296889
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kos20А есть универсальная запись? Ну типа получить 2 дату междуНаверное здесь логично использовать коллекцию Matches и отбирать оттуда только второй элемент...Но все как всегда зависит от исходных данных: строка состоит только из трех дат или есть что-то еще?
В общем случае можно так сделать:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub tttt()
    Dim oRE As Object, oM As Object
    Dim s As String
    s = "01.02.2015 15.08.2015 22.02.2016"
    Set oRE = CreateObject("vbscript.regexp")
    oRE.ignorecase = -1
    oRE.MultiLine = -1
    oRE.Global = -1
    oRE.Pattern = "(\d{2}.\d{2}.\d{4})"
    Set oM = oRE.Execute(s)
    If oM.Count > 1 Then 'две и более даты
        MsgBox oM.Item(1).Value
    End If
End Sub


код не претендует на универсальность. Для частного случая, если в строке есть две и более даты + смешанный текст вокруг и между ними. Т.е. входной текст может быть и таким: "01.02.2015 ывап 15.08.2015 22.02.2016 фыварав" - результатом все равно будет "15.08.2015"
...
Рейтинг: 0 / 0
Регулярные выражения
    #39296904
kos20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте пацаны, ну ваще крутяк!
Спасибо и уважуха... то что надо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные выражения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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