Регулярное выражение, которое должно работать, не работает, когда я использую его в C.
Когда я вставляю это регулярное выражение здесь - https://regex101.com и проверяю его, все выглядит нормально, как и ожидалось.
//clang 3.8.0
#include <stdio.h>
#include <regex.h>
int main(void)
{
char *regPatt = regPatt = "^HR(\\d{2})$";
regex_t regex;
short retval = regcomp (®ex, regPatt, 0);
short status = regexec (®ex, "HR16", (size_t) 0, NULL, 0);
printf ("%hd", status);
regfree (®ex);
}
Итак, онлайн-тест работает нормально.
Regex - ^ HR (\ d {2}) $
Строка - HR16
Например, https://regex101.com все в порядке, я получаю совпадение.
В моем коде это не удается. Значение, напечатанное с помощью printf (), равно 1 (REG_NOMATCH).
edit - код можно вставить для теста здесь: https://rextester.com/l/c_online_compiler_gcc