1

Python から次の正規表現を移植したい:

HASH_REGEX = re.compile("([a-fA-F0-9]{32})")
if HASH_REGEX.match(target):
    print "We have match"

apr-utils apr_strmatch 関数を使用して C に変換:

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 関数が使用している構文を理解できないことです。ドキュメントと例の検索は結果なしで終了しました。

事前にアドバイスをありがとう...

4

1 に答える 1

1

apr_strmatch正規表現のマッチングはまったく行いません。Boyer–Moore–Horspoolアルゴリズムを使用して、通常の部分文字列検索を行います (ソースを参照)。

C での RE マッチングについては、PCREを試してください。

于 2011-12-06T10:42:09.447 に答える