我想使用Boost.Spirit(Qi)解析制表符分隔文件。我的文件看起来像这样:
John Doe\tAge 23\tMember
Jane Doe\tAge 25\tMember
...
是否可以使用跳过解析器解析它?我现在遇到的问题是,boost::spirit::ascii:space
也会跳过人名中的空格。 phrase_parse(...)
电话怎么样?
我也使用Boost.Fusion元组在结构中方便地存储结果:
struct Person
{
string name;
int age;
string status;
};
这似乎适用于name
:
String %= lexeme[+(char_-'\t')];
它匹配不是标签的所有char。然后它被用作更大规则的一部分:
Start %= Name >> Age >> Status;
答案 0 :(得分:0)
Q值。是否可以使用跳过解析器解析它?
一个。不,用跳过解析器解析任何东西是不可能的。船长则反其道而行之:他们忽略了某些输入信息。
然而,你似乎在寻找像这样的东西:(我不推荐它)
现在,您可以查看我的其他答案,以找到解析嵌入空白,引用值,转义引号等的CSV / TSV的正确方法。(我相信一个甚至显示行继续字符)