我對Boost精神仍然很陌生。提升精神分析字符串與領先和尾隨空白
我想解析一個字符串與可能的主角和尾隨空白和中間空白。我想要做的字符串
- 刪除任何拖尾和先行空白
- 限制的在中間的字空格一個空格
例如
"( my test1 ) (my test2)"
得到以下解析爲兩項 -
"my test1"
"my test2"
雖然它允許在之間保留空間我已經使用以下邏輯
using boost::spirit::qi;
struct Parser : grammar<Iterator, attribType(), space_type>
{
public:
Parser() : Parser::base_type(term)
{
group %= '(' >> (group | names) >> ')';
names %= no_skip[alnum][_val=_1];
}
private:
typedef boost::spirit::qi::rule<Iterator, attribType(), space_type> Rule;
Rule group;
Rule names
}
。不幸的是,它還會保留標題和尾隨空白以及多箇中間空格。我想找到一個更好的邏輯。
我的確看到引用使用boost :: spirit :: qi :: skip online的自定義隊長,但是我還沒有遇到空間的有用示例。其他人有過使用它的經驗嗎?
關於'lexeme','skip','no_skip',隱式船長和'raw'的背景在這裏:http://stackoverflow.com/questions/17072987/boost-spirit-skipper-issues/17073965#1707396 5 – sehe