Boost Regex用于提取键值对

时间:2012-09-18 11:27:56

标签: c++ regex boost

计划使用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];
  }

0 个答案:

没有答案