У меня есть шаблон регулярных выражений
^(?:(?:31(\\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$
Может кто-нибудь сказать мне, как найти возможные совпадения из этого шаблона регулярных выражений?
Вот как выглядит ваш поток регулярных выражений:
Чтобы начать (и, конечно, ради краткости), давайте всегда выбираем самые лучшие маршруты 🙂
Прежде всего, у нас есть три пути, мы выберем самый верхний! ^
указывает на начало строки, после этого мы можем столкнуться 31
или же 29
или же 30
, но, следуя правилу выбора самого лучшего из тех, что мы только что сделали;), мы идем к 31
и после этого может быть последовательность символов \/
(другие возможности -
а также \.
).
Тогда может быть 0
на нашем пути или нет, (мы выберем случай «не»!), а затем один из 1, 3, 5, 7, 8
, то последовательность символов \1
, тогда у нас есть три пути вперед, мы идем с самым верхним к возникновению \
, а потом dd
(два раза d
) и мы наконец там, где должен быть конец строки. Какое путешествие !!
Таким образом, одно возможное совпадение может быть 31\/1\1\dd
, Теперь твоя очередь, возьми другие маршруты 🙂
Других решений пока нет …