0

SLRE を使用しています ( https://code.google.com/p/slre/ )

その方法で、異なる正規表現を使用して 15 個の文字列をチェックしています。

struct slre        slre;
struct cap         captures[4 + 1];
int i = 0;
int numberOfSettings = 15;   
for (i; i < numberOfSettings; i++) { 
    if (!slre_compile(&slre, settings[i].regex)) {
        printf("Error compiling RE: %s\n", slre.err_str);
    }
    else if (!slre_match(&slre, settings[i].value, strlen(settings[i].value), captures)) {
        printf("\nSetting '%s' does not match the regular expression!", settings[i].internName);
    }
}

settings[i].regexIP アドレスの解析に( ) を使用している正規表現は次のとおりです。

^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

チェック(settings[i].value)の値は8.8.8.8

私はJavaScriptでも同じ正規表現を使用しており、意図したとおりに機能しています。

これがfalseを返す理由を誰かが知っていますか?

4

1 に答える 1

2

SLRE はサポートしていません。 slre.h|の「サポートされている構文」セクションを参照してください。

(特別な理由がない限り、PCREを使用することをお勧めします。)

于 2013-05-17T19:44:39.957 に答える