1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
const char *str_request = "ADD $2, $3, $4"; /*La chaine a tester*/
const char *str_regex = "ADD \\$([0-9]), \\$([0-9]), \\$([0-9])"; /* La grammaire */
[...] regcomp (&preg, str_regex, REG_EXTENDED);
[...] match = regexec (&preg, str_request, nmatch, pmatch, 0);
/* regexec retourne 0 en cas de succès */
if (match == 0) {
char *chaine = NULL;
int start = pmatch[0].rm_so;
int end = pmatch[0].rm_eo;
size_t size = end - start;
/* Allocation mémoire correspondante, A QUOI ? */
chaine = malloc (sizeof (*chaine) * (size + 1));
if (chaine){
strncpy (chaine, &str_request[start], size);
chaine[size] = '\0';
printf ("La chaine capturée est : %s\n", chaine);
free (chaine);
}
} |
Partager