【发布时间】:2015-07-21 10:07:17
【问题描述】:
我想使用 Boost.Spirit (Qi) 解析制表符分隔的文件。我的文件看起来像这样:
John Doe\tAge 23\tMember
Jane Doe\tAge 25\tMember
...
是否可以使用 skip parser 对其进行解析?我现在遇到的问题是,boost::spirit::ascii:space 也跳过了人名中的空格。 phrase_parse(...) 调用会是什么样子?
我还使用 Boost.Fusion 元组将结果方便地存储在结构中:
struct Person
{
string name;
int age;
string status;
};
这似乎适用于name:
String %= lexeme[+(char_-'\t')];
它匹配所有不是制表符的字符。然后将其用作更大规则的一部分:
Start %= Name >> Age >> Status;
【问题讨论】:
标签: c++ parsing boost boost-spirit csv