我想parsing一个句子,其中一些string可能不加引号,“引用”或“引用”。 下面的代码几乎可以工作 – 但它不能匹配收盘报价。 我猜这是因为qq的参考。 在代码中对修改进行了注释,“引用”或“引用”中的修改重新parsing也有助于显示原始问题与结束引用。 代码还描述了确切的语法。 要完全清楚:未加引号的stringparsing。 像'hello'这样'hello'引用string将parsing开放引用' ,所有字符hello ,但是不能parsing最后的引用' 。 我又做了一个尝试,类似于boost教程中的开始/结束标记匹配,但没有成功。 template <typename Iterator> struct test_parser : qi::grammar<Iterator, dectest::Test(), ascii::space_type> { test_parser() : test_parser::base_type(test, "test") { using qi::fail; using qi::on_error; using qi::lit; using qi::lexeme; using ascii::char_; using qi::repeat; using namespace qi::labels; using boost::phoenix::construct; using boost::phoenix::at_c; using boost::phoenix::push_back; using boost::phoenix::val; using boost::phoenix::ref; using qi::space; […]