我需要将 const_iterator 转换为我可以对其执行 int 和 string 操作的类型。 results[1] 包含我需要处理的来自 regex_search 的文本。 我已经花了几个小时尝试转换为可行的格式,但没有成功...
boost::match_results<std::string::const_iterator> results;
boost::regex ex(pattern, boost::regex::perl);
if(boost::regex_search(line, results, ex))
(results[1] > 10) ? cout << "Fail" : cout << "Pass";
谢谢, 乔
最佳答案
您可以从 const 字符串迭代器的匹配结果中创建一个 std::string
,如下所示:
std::string result_string( results[1].first, results[1].second );
...或者简单地说:
std::string result_string = results[1].str();
您可以像这样将字符串强制转换为 int
:
int result_int = boost::lexical_cast< int >( result_string );
...或者,如 @Jonathan Wakely 所指出的,如果您使用的是 C++11:
int result_int = std::stoi( result_string );
关于c++ - 将 boost std::string::const_iterator 转换为 string 和 int c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959466/