posts - 7, comments - 3, trackbacks - 0, articles - 26

          如何分割內容中含有分割符的CSV

          Posted on 2010-08-06 10:46 delvin 閱讀(380) 評論(0)  編輯  收藏
          今天在解析CSV中遇到一個問題,就是csv內容中含有分割符,這里假定分割符就是逗號,當然這些內容用雙引號括起來了。
          因以前的代碼是使用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;

           }


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江西省| 沙河市| 安义县| 金华市| 呼和浩特市| 永和县| 博爱县| 思茅市| 英吉沙县| 嘉善县| 团风县| 石阡县| 株洲市| 堆龙德庆县| 西青区| 苗栗县| 奉贤区| 黄石市| 丹阳市| 葫芦岛市| 洞头县| 长岭县| 白水县| 琼海市| 金门县| 德清县| 沙雅县| 黄冈市| 古交市| 安阳市| 汽车| 汝州市| 鄂托克旗| 广安市| 昌乐县| 潜江市| 获嘉县| 津市市| 东明县| 阳江市| 麦盖提县|