카테고리 없음

check_domain_regex()

크크다스 2017. 4. 4. 20:08
반응형


int check_domain_regex(char *pStr)
{
    /* ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$  */
#define DOMAIN_REGULAR_EXPRESSION   "^\\([a-zA-Z0-9]\\([a-zA-Z0-9-]\\{0,61\\}[a-zA-Z0-9]\\)\\?\\.\\)\\+[a-zA-Z0-9]\\{1,6\\}$"

    regex_t regex;
    int reti;
    char msgbuf[100];

    if(!pstr)
    {
        return 0;
    }

    reti = regcomp(&regex, DOMAIN_REGULAR_EXPRESSION, 0);

    if( reti )
    {
        fprintf(stderr, "Could not compile regex\n");
        return 0;
    }

    reti = regexec(&regex, pstr, 0, NULL, 0);

    if( !reti ){
        // puts("Match");
        return 1;
    }
    else if( reti == REG_NOMATCH ){
        // puts("No match");
        return 0;
    }
    else{
        regerror(reti, &regex, msgbuf, sizeof(msgbuf));
        fprintf(stderr, "Regex match failed: %s\n", msgbuf);
        return 0;
    }

    return 0;
}

반응형