LINUX.ORG.RU

История изменений

Исправление wota, (текущая версия) :

эта задача не имеет практического смысла, ну и для дат есть удобнейший strptime, ну да ладно, вариант на С++ будет где-то такой:

list<list<string>> res;
smatch m;

for( string s : { "11-11-2013","","22:00:00","January 3" } ) {
    for( regex r : { regex(...), regex(...), ... } ) {
        if( regex_search( s, m, r ) )
            res.push_back( { m.begin(), m.end() } );
    }
}

извиняюсь, что не полностью рабочий вариант - не дружу с регулярными выражениями, а в С++11 тем более еще и формат их другой, не хочу тратить врем на чтение того, чем не пользуюсь, но мы ведь и не их обсуждаем, а так - все остальное рабочее, т.е. конечный вариант будет таким же

Исходная версия wota, :

эта задача не имеет практического смысла, ну и для дат есть удобнейший strptime, ну да ладно, вариант на С++ будет где-то такой:

list<list<string>> res;
smatch m;

for( string s : { "11-11-2013","","22:00:00","January 3" } ) {
    for( regex r : { regex(...), regex(...), ... } ) {
        if( regex_search( s, m, r ) ) {
            res.push_back( {} );
            for( string t : m )
                res.back().push_back( t );
        }
    }
}

извиняюсь, что не полностью рабочий вариант - не дружу с регулярными выражениями, а в С++11 тем более еще и формат их другой, не хочу тратить врем на чтение того, чем не пользуюсь, но мы ведь и не их обсуждаем, а так - все остальное рабочее, т.е. конечный вариант будет таким же