posts - 7, comments - 3, trackbacks - 0, articles - 26
          今天在解析CSV中遇到一個(gè)問(wèn)題,就是csv內(nèi)容中含有分割符,這里假定分割符就是逗號(hào),當(dāng)然這些內(nèi)容用雙引號(hào)括起來(lái)了。
          因以前的代碼是使用C++ Tr1 的regex

           vector<string>   Parser::parse(string& line)
           {
             vector<string> fields;
             std::tr1::regex  re(",");
            if( &line !=  NULL)
            {
                      sregex_token_iterator i(line.begin(), line.end(), re, -1);
                sregex_token_iterator j;
             while (i != j)
             {
              fields.push_back(*i++);
             }

            }

            return fields;

           }

          查了資料,修改成如下代碼就可以

           vector<string>   Parser::parse(string& line)
           {
             vector<string> fields;
             std::tr1::regex  re("(?!\".*),(?!.*\")"); 
            if( &line !=  NULL)
            {
                      sregex_token_iterator i(line.begin(), line.end(), re, -1);
                sregex_token_iterator j;
             while (i != j)
             {
              fields.push_back(*i++);
             }

            }

            return fields;

           }


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沂南县| 封丘县| 监利县| 昌平区| 阜康市| 石景山区| 鸡泽县| 涟源市| 银川市| 朝阳县| 远安县| 茌平县| 柳江县| 榕江县| 洛扎县| 临沧市| 东兰县| 三门峡市| 嘉禾县| 岳西县| 靖宇县| 黄大仙区| 昌都县| 麻城市| 呼伦贝尔市| 甘南县| 册亨县| 南平市| 军事| 长葛市| 略阳县| 温州市| 佛冈县| 子长县| 霍林郭勒市| 垦利县| 渝中区| 图木舒克市| 定远县| 涡阳县| 西平县|