Nov 12, 2016 20:03
Я думал-думал, и наконец, придумал.
Если вспомнить то, чему меня учили в университете, то проблема решается элементарно -- через метод построения конечных автоматов.
Каждый автомат, построенный программой, и будет представлять собой регулярное выражение. Чем больше в автомате состояний и меньше переходных функций, не изменяющих состояние автомата, тем более ленивым будет полученное регулярное выражение. И наоборот -- если в автомате минимум состояний и максимум переходных функций, то регулярное выражение будет жадным. На выходе, соответственно, получим несколько автоматов -- от автомата, который ловит решительно всё (ему будет соответствовать регулярное выражение /.*/) до автомата, который отлавливает только то, что ему было дано на вход. Оценивая репрезентативность выборки, человек будет делать решение по поводу того, какой автомат наиболее полно соответствует его или её задачам.
И всё равно не верю, что я единственный человек, который до такого додумался. Но гугление на данную тему не дало решительно ничего (кроме диссеров, и то в основном для эволюционных алгоритмов -- т.е. не мои задачи вообще).
программирование,
учёба,
работа,
чесать репу