У меня есть строка ввода, например 051916.000
. Я хотел бы выделить 05
, 19
, 16
и 000
. Я пытаюсь использовать regexec
таким образом на языке С.Группирование при использовании regexec
regex_t r;
regmatch_t pmatch[4];
char* pattern = "/([0-9]{2})([0-9]{2})([0-9]{2})\\.(.*)";
int status = regcomp(&r, "", REG_EXTENDED|REG_NEWLINE);
status = regexec(&r, t, 4, pmatch, 0);
regfree(&r);
Но это не работает. Ниже приведен вывод GDB
(gdb) p pmatch
$1 = {{rm_so = 0, rm_eo = 0}, {rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}}
Я использовал Regex в Python. Я новичок в Regex in C. Поэтому я не уверен, где я ошибаюсь. Regex проверяется, и он правильно соответствует.