从字符串c ++正则表达式中提取数字

时间:2017-04-08 19:08:53

标签: c++ regex

我试图从字符串中提取数字:

string line = "00:00:15,000 --> 00:00:18,000";

smatch results;

bool found = regex_match(line, results, regex("(\\d\\d):(\\d\\d):(\\d\\d),(\\d\\d\\d) --> (\\d\\d):(\\d\\d):(\\d\\d),(\\d\\d\\d)"));

/*for (auto result : results) {
    cout << result << endl;
}*/

int res = atoi( *results[3] );

我可以轻松打印结果(注释代码),但我无法将结果转换为int。由于某些原因,取消引用对此结果数组无效。

1 个答案:

答案 0 :(得分:1)

在C ++ 11中,您应该使用std::stoistd::string转换为整数。 (并且不需要取消引用它;事实上,*results[3]是一个编译错误,因为它不是指针。)

int number = stoi(results[3]);
cout << number << endl;  // 15