【发布时间】:2015-03-19 12:39:32
【问题描述】:
我目前正在尝试为一个 ASCII 文本文件编写一个解析器,该文件被一个带有校验和的小信封包围。
文件的基本结构是:
我想在另一个字符串中提取有效负载以将其提供给 下一个解析器。
我用来解析这个信封的解析器表达式是:
qi::phrase_parse(
first, last,
char_('\x02') >> *print >> char_('\x02') >> *xdigit,
space
);
输入已被消耗...我已经尝试转储负载:
qi::phrase_parse(
first, last,
char_('\x02') >> *print[cout << _1] >> char_('\x02') >> *xdigit,
space
);
但问题是每个换行符、空格等都被省略了!
现在我的问题:
如何提取 0x02/0x03 (ETX/STX) 字节之间的内容 正确地不省略空格、换行符等。
我的方法是先删除信封,然后解析 有效载荷好还是我应该使用其他更好的方法?
【问题讨论】:
标签: c++ parsing boost boost-spirit boost-spirit-qi