apr-utils apr_strmatch синтаксис регулярных выражений
Я хочу портировать следующее регулярное выражение из Python:
HASH_REGEX = re.compile("([a-fA-F0-9]{32})")
if HASH_REGEX.match(target):
print "We have match"
в C с помощью apr-utils с помощью функции apr_strmatch:
pattern = apr_strmatch_precompile(pool, "([a-fA-F0-9]{32})", 0);
if (NULL != apr_strmatch(pattern, target, strlen(target)) {
printf("We have match!\n");
}
Проблема в том, что я не понимаю, какой синтаксис регулярного выражения (или диалекта) использует apr-utils функция apr_strmatch. Поиск документации и примеров закончился безрезультатно.
Спасибо за ваши советы заранее...
1 ответ
Решение
apr_strmatch
совсем не выполняет сопоставление с регулярным выражением; он выполняет обычный поиск по подстроке, используя алгоритм Бойера – Мура – Хорспула (см. источник).
Для соответствия RE в C, попробуйте PCRE.