Поведение матчеров при нескольких возможных прочтениях частичного совпадения...
Originally reported on Google Code with ID 60
Пример регулярного выражения: ^ab+[a-z]*bacd
Строка: ababac
Кратчайшее ее завершение - d. На данный момент ни один из матчеров его не находит.
Необходимо определить правила и цели поведения матчеров в таких ситуациях...
Reported by oasychev
on 2011-11-21 20:14:58
Comments (3)
-
reporter -
reporter ``` Еще одно измерение проблемы связано с захватом подмасок - например в ситуации (a*)(a*)
http://laurikari.net/ville/regex-submatch.pdf на странице 7 описывает стандартные правила разрешения таких ситуаций. Однако это не означают, что они подходят нам.
Например я против буквальном следованию правилу "самого левое совпадение в первую очередь", которое в нормальном матчинге имеет приоритет даже над длиной для частичных совпадений. Это может быть ложное совпадение одной буквы в неправильном начале например...
Для полных совпадений эти правила вроде подходят. ```
Reported by `oasychev` on 2011-11-26 19:05:20
-
reporter Эта проблема давно решена, на повестке дня более серьезные...
Reported by
oasychev
on 2014-07-10 20:28:55 - Status changed:Done
- Log in to comment
``` Возможны две стратегии поиска максимального совпадения: 1) главное - совпасть как можно больше букв из ответа студента - старается найти ближайшее к предполагаемому ответу студента решение для подсказки 2) главное - найти кратчайший путь к завершению - выбирает ответ, который проще закончить - но потенциально может предложить студенту отбросить неверное, более длинное решение, и решать уже проще... ```
Reported by `oasychev` on 2011-11-21 20:26:05