#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 (10) | 2023.02.07 | 
|---|---|
| 리눅스 IP충돌 체크 (7) | 2022.09.08 | 
| 구조체 배열 인자로 넘겨서 채우기 (0) | 2022.08.11 | 
| 리눅스 usb mount 예제 (0) | 2021.07.20 | 
| ASCII & 한글 완성형(KSC5601) 출력 소스 (0) | 2021.07.08 | 






