| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как построить конечний автомат для RegEx? |
| Автор: unkis 17.10.2007, 10:56 |
| Привет всем! У меня такая проблема, мне надо построить конечный автомат по определенному RegEx, к примеру по этому. "(df)*(baf*b+)+" Как вообще строятся такие автоматы, может есть готовый пример кода? |
| Автор: Platon 17.10.2007, 10:59 |
| Мне тоже такая задачка интересна. Это ключ к решению задачи многослойного BB-кода. |
| Автор: nornad 17.10.2007, 16:47 |
| Если можно, опиши подробнее суть проблемы. Что должен делать этот твой автомат? Если всего лишь принимать состояние "подошло"/"не подошло", то зачем вообще автомат? Оборачивание в новый класс особо код не уменьшит. |
| Автор: chief39 17.10.2007, 17:58 |
Исполнять логику конкретного регекспа. Не оборачивание, а замена на вылизанный до состояния конечного автомата код. Причём, я так понимаю, автоматически. На всяк случай(мало ли) http://ru.wikipedia.org/wiki/Конечный_автомат Но.. уже подзабылась теория и практика данных "кофейных банкоматов"... Он на то и конечный, что конечный.... а входящие даные у тебя конечные ли? Я не копенгаген в нюансах регэкспершнов - расшифруй, если что, его логику. Добавлено через 5 минут и 54 секунды Ты не об этом: http://absurdopedia.wikia.com/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82? Тока не бейте |
| Автор: nornad 17.10.2007, 18:54 |
Забавная ...педия. В плане - заменить стандартный регэксп на свою реализацию что ли? Что-то я пока не понимаю, что же требуется автору. |
| Автор: nornad 18.10.2007, 01:49 |
| Ну, в общем, идея КА стала понятнее, хотя я пока всё равно ен понимаю, чего же хочет автор. В смысле, что должен делать КА, построенный по регэкспу? Добавлено через 1 минуту и 1 секунду Вот оно где выплыло, непрограммерское образование. |
| Автор: LSD 18.10.2007, 16:30 |
Тут два варианта он должен принимать последовательность которая соответсвует регекспу, и отвергать ту которая не соответсвует. Или принимать последовательность которая содержит подмножество символов, которые соответсвуют регекспу. |