Токенизация потока в C ++ с использованием регулярного выражения - PullRequest
0 голосов
/ 06 мая 2020

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

std::vector<std::string> tokenize(const std::string& source, const std::regex& re)
{
    auto tokens = std::vector<std::string>(
        std::sregex_token_iterator{ begin(source), end(source), re, -1 },
        std::sregex_token_iterator{}
    );
    return tokens;
}

Разница будет заключаться в передаче istream как source переменная.

Я мог бы сначала скопировать содержимое потока в строку, а затем выполнить токенизацию, но это кажется неэффективным.

...