компьютеры

Построитель регулярных выражений

Я думал-думал, и наконец, придумал.

Если вспомнить то, чему меня учили в университете, то проблема решается элементарно -- через метод построения конечных автоматов.

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

И всё равно не верю, что я единственный человек, который до такого додумался. Но гугление на данную тему не дало решительно ничего (кроме диссеров, и то в основном для эволюционных алгоритмов -- т.е. не мои задачи вообще).