Size: a a a

Regular Expressions

2021 November 04

A

Art in Regular Expressions
вот для него и надо сгенерировать патерны
источник

A

Art in Regular Expressions
но принцип схож с регулярками
источник

DE

Denis Efremov in Regular Expressions
Блин, чел. Давай полную задачу
источник

A

Art in Regular Expressions
да по факту мне нужен просто алгоритм. Но кажется я же его придумал
источник

DE

Denis Efremov in Regular Expressions
Если ты способен понять тот синтаксис, то я уверен и регулярку для диапазона напишешь
источник

A

Art in Regular Expressions
но задачка интересная))
источник

IP

Ivan Petrov in Regular Expressions
^(1|2)((?<=1)[1-9]|(?<=2)[0-3])((?<=11)[2-9]|(?<=1[2-9])\d|(?<=23)[0-4]|(?<=2[0-2])\d)((?<=112)[3-9]|(?<=11[3-9])\d|(?<=1[2-9]\d)\d|(?<=234)[0-5]|(?<=23[0-3])\d|(?<=2[0-2]\d)\d)$
источник

IP

Ivan Petrov in Regular Expressions
Имхо, одно из простых и элегантных решений
источник

IP

Ivan Petrov in Regular Expressions
источник

A

Art in Regular Expressions
хм прикольно)
источник

IP

Ivan Petrov in Regular Expressions
/d есть, [] есть, но также есть | и ?<=
источник

IP

Ivan Petrov in Regular Expressions
Или неинтересное брутфорсное частное решение:
^112[3-9]$|^11[3-9]\d$|^1[2-9]\d\d$|^2[0-2]\d\d$|^23[0-3]\d$|^234[0-5]$
источник

IP

Ivan Petrov in Regular Expressions
источник

A

Art in Regular Expressions
Да вот это ближе к тому что надо
источник

A

Art in Regular Expressions
Хотя меня больше интерисует алгоритм составления данного паттерна
источник

A

Art in Regular Expressions
чтобы на вход я мог задать любой диапазон а на выходе получить готовую регулярку
источник

A

Art in Regular Expressions
Думаю сделать функцию с рекурсией
источник

IP

Ivan Petrov in Regular Expressions
Сильнее упростить нереально, предлагаю взять такое.

Алгоритм следующий:

Начало строки
Минимальное число диапазона без последней цифры + цифра от минимальной до максимальной
ИЛИ
Минимальное число диапазона без двух последних цифр + цифра от минимальной до максимальной + любая
ИЛИ
И так далее до завершения всей длины минимального числа
ИЛИ

диапазон чисел от минимального +1 до максимального -1 со всеми любыми цифрами

ИЛИ
Первая цифра максимального числа диапазона плюс цифра от минимальной до максимальной-1 + любые
ИЛИ
Первые две цифры максимального числа диапазона плюс цифра от минимальной до максимальной-1 + любые
ИЛИ
И так далее до завершения всей длины максимального числа
Конец строки
источник

IP

Ivan Petrov in Regular Expressions
Это работает на числах одной длины
источник

IP

Ivan Petrov in Regular Expressions
Почему бы не использовать что-то не про регулярку?
источник