Как уже упоминали другие ... Я не совсем уверен, что вы хотите сделать здесь ...
Предполагая, что значения в скобках всегда целые, вы можете просто сделать:
int a, b, c;
sscanf(line, "[%d, %d] => %d", &a,&b,&c);
Если вы действительно настаиваете на использовании регулярных выражений и хотите, чтобы между скобками были переданы какие-то общие элементы, вам нужно:
sscanf(line, "[%[^,], %[^]]] => %d", a1, a2, &i);
второе регулярное выражение должно соответствовать всемсимволы, кроме ]
в конце.Я полагаю, что вы пытались уйти от ]
раньше, но это не обязательно, и компилятор выдает ошибку, потому что он не знает, как обработать этот выход.
Есть 3 ]
в предложении захвата для a2
, потому что первый говорит: «не включать этот символ в набор совпадений символов», второй закрывает набор совпадений символов, а третий соответствует ]
в [25, 28] => 34
input.
Если я полностью неправильно понял ваш вопрос, просто уточните, и я могу пересмотреть.