Size: a a a

Regular Expressions

2021 November 04

IP

Ivan Petrov in Regular Expressions
Допустим, берём диапазон от 2050 до 6025
Тогда после этого алгоритма у нас такие группы:
2050-2059
205-209
20-29
3-5
60-60
600-602
6020-6025
источник

П

Петр in Regular Expressions
источник

OM

Oleg Makarikhin in Regular Expressions
с этим справится  https://github.com/pemistahl/grex

seq 1123 2345 | xargs grex
^(?:112[3-9]|(?:11[3-9]|1[2-9][0-9])[0-9]|2(?:[0-2][0-9][0-9]|3(?:[0-3][0-9]|4[0-5])))$
источник

OM

Oleg Makarikhin in Regular Expressions
но диапазоны которые дадут к примеру сотню тысяч кейсов наверное будет сложно, потому что  есть лимиты операционной системы сколько там опций в командной строке
а не, там можно так
seq 1123 2345 | grex -
источник

OM

Oleg Makarikhin in Regular Expressions
и быстро работает..
$ time seq 112300 234500 | grex -
^(?:(?:112[3-9]|(?:11[3-9]|1[2-9][0-9])[0-9])[0-9][0-9]|2(?:[0-2][0-9][0-9][0-9][0-9]|3(?:[0-3][0-9][0-9][0-9]|4(?:[0-4][0-9][0-9]|500))))$
real    0m1,083s  (122тыс паттернов)
источник

OM

Oleg Makarikhin in Regular Expressions
это называется segment-tree , и есть задачи которые позволяют сэкономить много сил  если надо выполнять одну и ту-же операцию для смежных диапазонов, то можно предрасчитать их поддиапазонов для этого segment tree. например суммы срезов массивов.
https://www.codewars.com/kata/608cc9666513cc00192a67a9/ вот классная и общая задача как раз на эту структуру.

но вот построение регулярки это задача не из этого класса.
источник

SI

Shack Ira in Regular Expressions
[^}] что оно делает?
источник

SI

Shack Ira in Regular Expressions
По идее проверяет что строка начинается с } но зачем квадратные скобки выбора?
источник

a

artemetra in Regular Expressions
любой символ помимо }
источник

a

artemetra in Regular Expressions
^ внутри квадратных скобок означает "не"
источник

SI

Shack Ira in Regular Expressions
хм, спасибо
источник

SI

Shack Ira in Regular Expressions
просто есть регулярка
if[^}]*?\}(?!\selse)
и я хочу её по шагам разобрать
источник

SI

Shack Ira in Regular Expressions
то есть мы выбираем иф, после которого может быть сколько угодно символов не }
источник

SI

Shack Ira in Regular Expressions
но потом 1 и более }
источник

A

Art in Regular Expressions
Всем большое спасибо!!!
источник

SI

Shack Ira in Regular Expressions
Должно искать вложенные ифы, но почему не ищет?
источник

IP

Ivan Petrov in Regular Expressions
Потому что у тебя начало строки без табуляции
источник

VK

Vyacheslav Koval in Regular Expressions
может проще сделать проверку на диапазон средствами языка?
источник

A

Art in Regular Expressions
мне не нужна проверка на диапазон. Задача программы генерировать паттерн регулярки для конкретного диапазона
источник

СМ

Сергей Моисеев... in Regular Expressions
Есть пакеты для генерации диапазонов чисел
https://www.npmjs.com/package/to-regex-range - вот, например
источник