Я ищу библиотеку регулярных выражений, которая поддерживает API для добавления нескольких выражений
( шагов ), с контекстом для каждого; context [opaque] должен быть возвращен при использовании
совпадение (чтобы я знал, какое выражение соответствует). Например:
re_t re;
int context = 1;
...
reg_add(re, "a{5}b", &context);
...
context = 2;
reg_add(re, "x(p|q)y", &context);
...
reg_match(re, mystring_subject, &context, &begin, &end); // <-- context returned among other info
Я посмотрел на Regex9 (plan9), Onig и PCRE, но не вижу таких API
PCRE имеет возможность callout , но это должно быть добавлено к каждому выражению
скомпилирован, и имеет ограничение 255. Кто-нибудь знает о какой-либо библиотеке регулярных выражений открытого домена
который поддерживает API-интерфейсы этого типа, или любой простой в модификации lib для поддержки этого?
P.S. Я ищу библиотеку на основе C.