[C] Problemino con regex
Inviato: lun 7 gen 2008, 19:41
Non riesco a recuperare piu' di un'occorrenza in un'espressione...
Esempio:
Questo codice mi restituisce solo la prima delle tre stringhe.
Ma dove sbaglio ?
Esempio:
Codice: Seleziona tutto
#include <stdio.h>
#include <string.h>
#include <regex.h>
#include <assert.h>
#define MAX_MATCH 50
int main (void)
{
char str[] = "AAAAAAciao1ZZZZZZ\n"
"AAAAAAciao5ZZZZZZ\n"
"AAAAAAciao9ZZZZZZ\n",
buff[50];
regex_t preg;
regmatch_t matches[MAX_MATCH];
u_short i;
assert (!regcomp (&preg, "ciao[0-9]", REG_EXTENDED));
assert (!regexec (&preg, str, MAX_MATCH, matches, REG_EXTENDED));
for (i = 0; matches[i].rm_so >= 0 && i < MAX_MATCH; i++)
{
strncpy (buff, str + matches[i].rm_so, matches[i].rm_eo - matches[i].rm_so);
printf ("Match %u: %s\n", i, buff);
}
regfree (&preg);
return 0;
}
Ma dove sbaglio ?