Boost Spirit で特定の文字列だけを除外する方法2021年01月20日 12時49分14秒

Boost Spirit でほぼ任意の文字列に一致したいが特定の文字列は除外したい場合がある。そのときは、qi::char_ から qi::lit を引き算演算子で繋げれば良い。
*(qi::char_ - (qi::lit("ABC") | qi::lit("DEF") | qi::lit("GHI"))
これで、ABC、DEF、GHI を除く文字列に一致する。