Поведение матчеров при нескольких возможных прочтениях частичного совпадения...

Issue #60 closed
Oleg Sychev repo owner created an issue

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)

  1. Oleg Sychev reporter

    ``` Возможны две стратегии поиска максимального совпадения: 1) главное - совпасть как можно больше букв из ответа студента - старается найти ближайшее к предполагаемому ответу студента решение для подсказки 2) главное - найти кратчайший путь к завершению - выбирает ответ, который проще закончить - но потенциально может предложить студенту отбросить неверное, более длинное решение, и решать уже проще... ```

    Reported by `oasychev` on 2011-11-21 20:26:05

  2. Oleg Sychev reporter

    ``` Еще одно измерение проблемы связано с захватом подмасок - например в ситуации (a*)(a*)

    http://laurikari.net/ville/regex-submatch.pdf на странице 7 описывает стандартные правила разрешения таких ситуаций. Однако это не означают, что они подходят нам.

    Например я против буквальном следованию правилу "самого левое совпадение в первую очередь", которое в нормальном матчинге имеет приоритет даже над длиной для частичных совпадений. Это может быть ложное совпадение одной буквы в неправильном начале например...

    Для полных совпадений эти правила вроде подходят. ```

    Reported by `oasychev` on 2011-11-26 19:05:20

  3. Oleg Sychev reporter
    Эта проблема давно решена, на повестке дня более серьезные...
    

    Reported by oasychev on 2014-07-10 20:28:55 - Status changed: Done

  4. Log in to comment