c – 基于提升精神语法的字符串拆分
发布时间:2020-12-16 09:37:28 所属栏目:百科 来源:网络整理
导读:我正在使用Boost 1.44,Spirit解析器适用于数值解析,但对于字符串解析来说真的很棘手.我试图解析一个字符串,使用多个分隔符进行拆分:’,’,’;’要么 ‘ ‘.当我这样做时,它适用于数字(其中vect = vector double): qi::parse(first,last,double_ *(',' doub
我正在使用Boost 1.44,Spirit解析器适用于数值解析,但对于字符串解析来说真的很棘手.我试图解析一个字符串,使用多个分隔符进行拆分:’,’,’;’要么 ‘ ‘.当我这样做时,它适用于数字(其中vect = vector< double>):
qi::parse(first,last,double_ >> *(',' >> double_ | ' ' >> double_ | ';' >> double_), VECT,空间); 但是,当我使用vect = vector<修改字符串的语法时字符串>, +char_ >> *(',' >> +char_ | ' ' >> +char_ | ';' >> +char_) 我收到以下错误: /usr/include/boost/spirit/home/qi/detail/assign_to.hpp:109:13: error: invalid conversion from ‘char’ to ‘const char*’/usr/include/boost/spirit/home/qi/detail/assign_to.hpp:109:13: error: initializing argument 1 of ‘std::basic_string<_CharT,_Traits,_Alloc>::basic_string(const _CharT*,const _Alloc&) [with _CharT = char,_Traits = std::char_traits<char>,_Alloc = std::allocator<char>]’ 我将错误缩小为语法语法中的第一个char_,它被视为一系列字符而不是字符串.有什么方法可以解决这个问题吗? 谢谢 解决方法
使用更新版本的Spirit,字符串处理(您的方式)变得更加容易.我建议使用Spirit from Boost V1.47,它重新修改了属性处理代码.
但即使它以你想要的方式编译,它也不会按照你期望的方式解析.精神本身就是贪婪的,这意味着char_将无条件地消耗你输入中留下的任何东西.这似乎更好 +~char_(",;") % char_(",;") 即一个或多个()字符在集合中没有(?),“;”正好穿插其中一个角色.列表解析器(%)公开向量< A>,其中A是左手表达式的属性,向量< string>在上面的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 使用带有子模型计数的named_scope
- 数据结构与算法(十六):平衡二叉树
- 关于Rails的错误提示 Rails flash error不消失
- c – 为什么shared_ptr不能解析函数接口中的继承关系?
- 浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
- 使用usbd_core.c检测何时断开USB设备
- c# – 在asp.net图表中调整字体轴的样式和大小?
- React Native 开发豆瓣评分(五)添加字体图标
- ruby – ActiveRecord:当连接断开时如何自动重新连接到Pos
- SQLITE使用小方法 insert和update混合使用