![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| unkis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Привет всем! У меня такая проблема, мне надо построить конечный автомат по определенному RegEx, к примеру по этому. "(df)*(baf*b+)+"
Как вообще строятся такие автоматы, может есть готовый пример кода? -------------------- www.unkis.com |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Мне тоже такая задачка интересна. Это ключ к решению задачи многослойного BB-кода.
|
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Если можно, опиши подробнее суть проблемы. Что должен делать этот твой автомат? Если всего лишь принимать состояние "подошло"/"не подошло", то зачем вообще автомат? Оборачивание в новый класс особо код не уменьшит.
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Исполнять логику конкретного регекспа. Не оборачивание, а замена на вылизанный до состояния конечного автомата код. Причём, я так понимаю, автоматически. На всяк случай(мало ли) Конечный автомат Но.. уже подзабылась теория и практика данных "кофейных банкоматов"... Он на то и конечный, что конечный.... а входящие даные у тебя конечные ли? Я не копенгаген в нюансах регэкспершнов - расшифруй, если что, его логику. Добавлено через 5 минут и 54 секунды Ты не об этом: Конечный автомат? Тока не бейте -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Забавная ...педия. В плане - заменить стандартный регэксп на свою реализацию что ли? Что-то я пока не понимаю, что же требуется автору. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Ну... как бы... Примерно так попробую объяснить суть КА: есть конституция, законы и постановления. Учишь их все. И по входящему запросу принимаешь решение: накладываешь логику конституции, накладываешь логику законов и накладываешь логику постановлений/указов. Получается некий алгоритм, по которому мы приходим к детерминированному решению. А если это всё, грубо говоря, "оптимизировать", то есть вместо абстрактного х*2*2/4*3 сделать x*3 - выйдет КА. То есть, нечто вроде тупой интструкции для ресепшна: пришёл такой запрос - в такую папку, пришёл такой - в такую. Без всяких просчитываний законов и конституции на приёмке. Добавлено через 6 минут и 23 секунды Ещё грубее говоря: У тебя есть БД словарная со списком стран и языков. Есть датабэйс слой некий. ОРМка, бизнес логика для этого всего и интерфейс програмный для клиентских приложений. Но. Если набор стран и языков стабилен(в контексте задачи) - то можем упростить всё до состояния конечного автомата: если идёт вот такой запрос с клиента - отдать вот такое. Если такое - строго такое отдать. Трудно объяснить так... У нас очень хорошо освещали. И очень хорошо видно на триггерах, логических схемках при их оптимизации. Чувствуешь саму суть, дух КА -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ну, в общем, идея КА стала понятнее, хотя я пока всё равно ен понимаю, чего же хочет автор.
В смысле, что должен делать КА, построенный по регэкспу? Добавлено через 1 минуту и 1 секунду Вот оно где выплыло, непрограммерское образование. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Тут два варианта он должен принимать последовательность которая соответсвует регекспу, и отвергать ту которая не соответсвует. Или принимать последовательность которая содержит подмножество символов, которые соответсвуют регекспу. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |