Здравствуйте, Alexander Babaev, Вы писали:
AB>Фильтрация строк с использованием автоматовАвтор(ы): Alexander Babaev
Дата: 22.05.2005
В статье предлагается Pure Java API для произвольной обработки строк. При этом показывается, как пользоваться такого рода библиотекой на конкретном примере разработанной автором библиотеки. Также сравнивается подход автора с классическим.
AB>В статье предлагается Pure Java API для произвольной обработки строк. При этом показывается, как пользоваться такого рода библиотекой на конкретном примере разработанной автором библиотеки. Также сравнивается подход автора с классическим.
Самая большая для меня в этой статье непонятка: почему автор не пользуется утилитой LEX? Существует аналог именно под Java — JLex:
http://www.cs.princeton.edu/~appel/modern/java/JLex/current/manual.html
(Кстати, для C# тоже есть — C#Lex:
http://www.infosys.tuwien.ac.at/cuplex/lex.htm)
Посмотрите вот это руководство — все очень и очень просто:
http://bmrc.berkeley.edu/courseware/cs164/fall99/assignment/a1/tutorial.html
LEX принимает на входе файл с описанием регулярных выражений. На выходе отдает код для разбора этих выражений конечным автоматом.
AB>Возможен другой вариант, который и подводит непосредственно к автоматному методу работы. Те, кто более глубоко интересовался регулярными выражениями, скажут, что автоматы и регэкспы – это одно и то же. Да, любое регулярное выражение – это всего лишь короткая строковая запись автомата. Но обсуждение такого рода различий выходит далеко за рамки статьи.
Судя по этому абзацу, вы понимаете соотношение между автоматами и регэкспами. А стандартный, работающий уже десятилетиями инструмент — почему-то не используете. Почему?