НКА для Регулярного выражения
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 22.07.04 14:32
Оценка:
Может ли кто-нибудб посказать какдолжен вести себя НКА в созданный по регулярному выражению:
((a*)*)

Автомат строится такой:


3,1,2,4 — состояние с е(пустыми)-переходами
0 — из него астомат выходит только при получении 'а'

Он "напускается" на текст: bcdbcdbcd — тоесть в тексте 'а' не встречается не разу.
Автомат не находит a и из состояние 1 всегда переходит в сосояние 2. Состояние 2 — это внешняя (...)* операция, которая ни очем не догадываясь переходит снова в состояние 1 и т.д. Автомат зацикливается. Как можно решить данную проблемму? Может ли кто что посоветовать?

Зацикливание происходит и в такой ситуации:
автомат: ((first|third)*|second)*
строка: firstsecondfirstsecondttt
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.