提升精神 - 如何匹配字符串但不匹配子串

时间:2017-07-11 07:38:15

标签: c++ boost-spirit

我正在尝试使用boost::spirit编写一个解析器,该解析器将匹配可能还包含_字符的字母数字序列,但会在'和中排除文字' '出'rule0)。

例如,它应匹配“abc3x3_”,“_ hello”,“in_12”,“out_in”等。 但是匹配“in”“out”

下面的

rule1旨在实现这一目标。

typedef boost::spirit::qi::rule <const char*, string(), ascii::space_type> myRule;

myRule rule0 = qi::lit("in") | "out";  
myRule rule1 = ((qi::alpha | '_') >> *(qi::alnum | '_')) - rule0;  

问题在于匹配包含来自rule0的文字作为子字符串的字符串:

例如,它与“_ in”,“in_12”,“out1”等不匹配。

我哪里错了?

0 个答案:

没有答案