apr-utils apr_strmatch синтаксис регулярных выражений - PullRequest
1 голос
/ 06 декабря 2011

Я хочу портировать следующее регулярное выражение из 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 Ответ

1 голос
/ 06 декабря 2011

apr_strmatch не выполняет сопоставление регулярных выражений вообще; он выполняет обычный поиск по подстроке, используя алгоритм Boyer – Moore – Horspool (см. source ).

Для соответствия RE в C, попробуйте PCRE .

...