В основном я использую следующий шаблон в моей C-программе (см. Регулярное выражение, совпадающее с бесконечным шаблоном ):
^[0-9]( [0-9])*$
со следующим кодом:
char *pattern = "^[0-9]( [0-9])*$";
regex_t regexCompiled;
int rc = regcomp(®exCompiled, pattern, REG_EXTENDED);
if (rc != 0) {
char msgbuf[100];
regerror(rc, ®exCompiled, msgbuf, sizeof (msgbuf));
fprintf(stderr, "Regex match failed: %s\n", msgbuf);
exit(EXIT_FAILURE);
}
if (regexec(®exCompiled, "0 1", 0, NULL, REG_EXTENDED) == 0) {
printf("Valid\n");
} else {
printf("Invalid\n");
}
Где я выполняю против строки "0 1", которая действительна для шаблона, и он не работает.'^' И '$' не работают.Это почему?и как я могу заставить его работать?