【发布时间】:2023-03-30 07:57:01
【问题描述】:
我需要从字符串“1/20/10/3/5”中解析数字。 Number - 为正整数,“/”为分隔符。
我写下一个表达式:
('"' >> +(qi::uint_ ^ "/") >> '"')
它工作正常,但解析器允许下一个字符串“1//3”。如何更改我的表达式以使该字符串失败?
【问题讨论】:
标签: c++ boost c++14 boost-spirit boost-spirit-qi
我需要从字符串“1/20/10/3/5”中解析数字。 Number - 为正整数,“/”为分隔符。
我写下一个表达式:
('"' >> +(qi::uint_ ^ "/") >> '"')
它工作正常,但解析器允许下一个字符串“1//3”。如何更改我的表达式以使该字符串失败?
【问题讨论】:
标签: c++ boost c++14 boost-spirit boost-spirit-qi
您正在使用 ^,permutation parser,它与 "/" 和/或 qi::uint_ 匹配。
你想要的是list parser:%。
('"' >> qi::uint_ % "/" >> '"')
【讨论】: