регулярное выражение сгенерировать исключение bad_cast - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок ie в C ++ Обнаружена такая проблема:

std::string get_country_name()
{
    std::string name;

    try {
        std::smatch matches;
        const std::regex pattern("(\"countryName\"):[\"]?(.+?)[\",}]", std::regex_constants::icase);

        if (std::regex_search(content_, matches, pattern) && matches.size() == 3)
            name = matches.str(2);

    catch (const std::exception& ex) {
        name = ex.what(); // std::bad_cast here
    }

    return name;
}

Работает нормально на Windows, но на Linux выдает std::bad_cast исключение.

Компилятор G CC 9.3.0.
Как заставить это регулярное выражение работать на Linux?

...