Я пытаюсь реализовать базовый код сопоставления с образцом, используя библиотеку POSIX в C, чтобы сопоставить простые шаблоны, содержащие только символы подстановки "*". Однако сопоставление, похоже, не работает. Любые указатели были бы полезны.
// Example inStr: www.google.com | pattern ***.google.com
static int isMatch(xmlChar* pattern, char inStr[])
{
regex_t regex;
int reti;
char msgbuf[100];
reti = regcomp(®ex, pattern, 0);
if (reti) {
fprintf(stderr, "Could not compile regex\n");
return 0;
}
/* Execute regular expression */
reti = regexec(®ex, inStr, 0, NULL, 0);
if (!reti) {
return 1;
}
else if (reti == REG_NOMATCH) {
return 0;
}
else {
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
return 0;
}
regfree(®ex);
return 0;
}