1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include <stdio.h>
#include <sys/types.h>
#include <regex.h>
int match(const char *str, const char *pattern)
{
int status;
regex_t re;
if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) != 0) return 0;
status = regexec(&re, str, (size_t) 0, NULL, 0);
regfree(&re);
if (status != 0) return 0;
return 1;
}
int main()
{
int i;
const char *pattern = "([0-9]{1,3}\\.){3}[0-9]{1,3}";
const char *str1="une IP 335.0.0.1 uhu";
const char *str2="Pas d'IP 125.0.0. ..";
i = match(str1, pattern);
printf("Dans [%s] IP %strouvée.\n", str1, (i==1)?"":"non ");
i = match(str2, pattern);
printf("Dans [%s] IP %strouvée.\n", str2, (i==1)?"":"non ");
return 0;
} |
Partager