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.

Другие вопросы по тегам