std::regex парсинг номера телефона
От: Мёртвый Даун Россия  
Дата: 06.12.17 05:12
Оценка:
Всем привет!

С регуляркой дружу поскольку постольку. Есть вопрос, достать номер телефона. Но проблема скорее всего с незнанием std::regex.

// телефон
std::string pattern(R"(^((8|\\+420)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?[\\d\\- ]{7,10}$)");

std::string data("4207743822140");
std::smatch match;

try
{
    if (std::regex_match(data, match, pattern))
    {
        // вот тут в match имеем 5 совпадений
        // и например, match[3] выглядит вот так в дебагере:
        // match[3].matched = true
        // match[3].first = "420" // это итератор?
        // match[3].second = "7743822140" // это итератор?

        const std::string s1 = ...; // вот сюда хочу именно вот это "7743822140",
                                    // как достать?
    }
}
catch (const std::regex_error& e)
{
    // smth. wrong
}
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.