Как обрабатывать регулярные выражения?

AKJ спросил: 03 ноября 2018 в 09:52 в: c++

У меня есть список данных, которые необходимо проанализировать. Данные выглядят следующим образом:

Element1 \ t OptionalElement2 \ t OptionalElement3

Элементы (значения) разделены символом '\ t', и OptionalElement2 и / или OptionalElement3 могут появляться или не появляться. Это означает, что я мог бы иметь:

Element1 \ t \ t OptionalElement3

или

Element1 \ t OptionalElement2

или

Element1

Я хотел прочитать значения с регулярным выражением на языке C или C ++ с использованием sscanf, с

while (counter < 3) {
    memset(buffer[counter], '\0', sizeof(buffer[counter])); 
    counter++;
}
sscanf(toParse, "%[^\t]%[^\t\r\n]%[^\t\r\n]\r\n", buffer[0], buffer[1], buffer[2])

Но тогда, когда OptionalElement2 пуст, buffer [1] получает значения OptionalElement3 вместо массива ' \ 0 '. Есть ли способ правильно обработать это, чтобы, когда значения не являются выходными, их соответствующие контейнеры также были пустыми?

Спасибо.

0 ответов