如何在boost :: spirit :: qi中捕获角色而不消耗它

Ell*_*ron 2 c++ boost boost-spirit boost-spirit-qi

我正在使用boost::spirit::qi解析看起来像这样的"模板"格式:

/path/to/:somewhere:/nifty.json
Run Code Online (Sandbox Code Playgroud)

where :somewhere:表示由名称标识的任何字符串somewhere(名称可以是两个:字符之间的任何字符串).我有一个有效的解析器,但我想做一个额外的改进.

我想知道:somewhere:占位符后面的字符(在本例中为a /).但我的解析器的其余部分仍然需要知道这一点/并将其作为下一部分的一部分使用.

如何/:somewhere:不实际使用它的情况下"读取" 后面的内容,以便解析器的其余部分可以看到它并使用它.

seh*_*ehe 8

你在找

例:

 myrule = lexeme [ *~char_(":") ] >> ":" >>
       (  (&lit('/') >> absolute_path)
        | (relative_path)
       )
Run Code Online (Sandbox Code Playgroud)