Использование PCRE из C, с учетом регулярного выражения/^ a {1,3} $/и строки «aa», pcre_dfa_exec() возвращает 1, указывая на то, что строка соответствует.PCRE open-end range & partial matching
Мне нужно, чтобы определить, что строка не исчерпывает регулярное выражение, и что есть место для последующих символов в строке, которая может потенциально также соответствовать (например, «111»).
Я не могу найти API для этого в PCRE. Я что-то упускаю?
Не могли бы вы привести примеры других строк и какими должны быть результаты? – Barmar
Все остальные правила должны совпадать с обычным соответствием. например, «b», «ab», «aaaa» не должны совпадать, «a», «aa» должны указывать, что они соответствуют, но не являются исчерпывающими, и «aaa» должен точно соответствовать. PCRE_PARTIAL почти делает это, за исключением того, что он считает, что «aa» является точным соответствием. –
Это потому, что 'aa' является точным соответствием. Ваше регулярное выражение говорит, что оно соответствует 1, 2 или 3 а. Я не уверен, что вы подразумеваете под «, который потенциально может также совпадать». – Barmar