我有一个 csv 文件,其中包含以下记录:
837478739*"EP" 1 "3FB2B464BD5003B55CA6065E8E040A2A"*"F"*21*15*"NH"*"N" 0 *-1*"-1"*0*0**-1*223944*-1*"23 " 1 "-1" " -1" "78909" " -1" " -1" " -1" " -1""- 1" "- 1" "- 1" "- 1" "- 1" " -1" "-1" "-1" "-1" "74425" "26" "-1"*"-1"*1*1*69*23.58*0*0*0*0*"MC"
该文件有很多记录,所以我需要一种快速的方法来分解行并将这些部分中的每一个推回一个向量。我选择 tokenizer 的主要原因是我听说了很多关于它的性能。我有一个功能:
void break(){
//using namespace boost;
string s = "This is a , test '' file";
boost::tokenizer<> tok(s);
vector<string> line;
for(boost::tokenizer<>::iterator beg=tok.begin();beg!=tok.end();++beg){
line.push_back(*beg);
}
cout << line[3] << " and " << line[5] << endl;
}
这样我就可以得到句子的每个部分,而忽略所有不是字母的东西。标记器是否能够读取我拥有的记录并通过“*”分隔符解析它们并从字符串中删除引号?引号之间不会有任何特殊字符,我只需要删除引号。我试图阅读 tokenizer 文档,但没有任何结果。