计划使用boost和regex开发一个实用程序来提取字符串中的键值对。
示例输入字符串可以如下
旅游:1.5,汽车保险:3.25
提取后应该看起来像
旅行1.5
汽车保险3.25
拥有以下代码,但不知何故,这似乎没有按预期工作
std::map<std::string, std::string> pairs;
boost::regex re("(?:(.*?):(.*?),)*(?:(.*?):(.*?))$"); // key - value pair
// read lines from stdin; populate map
boost::sregex_iterator it(str.begin(), str.end(), re), end;
for ( ; it != end; ++it){
pairs[(*it)[1]] = (*it)[2];
}