'정규식'에 해당되는 글 1건

  1. 2022.09.06 리눅스 정규식을 이용한 IP / Email 주소 체크

#include <regex.h>
int Check_IP_Addr(char *addr)
{
    regex_t state;
    const char *pattern="^(([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])$";

    regcomp(&state, pattern, REG_EXTENDED);
    //0=success else=fail
    return regexec(&state, addr, 0, NULL, 0);
}

int Check_Email_Addr(char *addr)
{
    regex_t state;
    const char *pattern="^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$";

    regcomp(&state, pattern, REG_EXTENDED);
    //0=success else=fail
    return regexec(&state, addr, 0, NULL, 0);
}

int main(void)
{
    int i, ret;
    char *ip[]={"192.168.0.24", "192.168.0.753", "192.168.0.1"};
    char *email[]={"afewgood@afewgood.net", "example@test.com", "nonmail"};

    for(i=0; i<3; i++)
    {
        ret = Check_IP_Addr(ip[i]);
        if(ret != 0)    printf("[%d] Incorrect IP address\n", i);

        ret = Check_Email_Addr(email[i]);
        if(ret != 0)    printf("[%d] Incorrect Email Address\n", i);
    }
}

결과
[1] Incorrect IP address
[2] Incorrect Email Address

'c' 카테고리의 다른 글

log파일 만들기 source  (0) 2023.02.07
리눅스 IP충돌 체크  (0) 2022.09.08
구조체 배열 인자로 넘겨서 채우기  (0) 2022.08.11
리눅스 usb mount 예제  (0) 2021.07.20
ASCII & 한글 완성형(KSC5601) 출력 소스  (0) 2021.07.08
Posted by afewgood
,