boost:regex分割字符串(带有'\'字符) - zzusimon的专栏 - 博客频道 - CSDN.NET

boost:regex分割字符串(带有'\'字符)

分类: C++ 2011-08-31 10:32 727人阅读 评论(0) 收藏 举报
regexiterator正则表达式tokenwindowsstring

在实际的应用中,经常用到boost:regex进行字符串的分割,特别是windows下的路径字符串的分割,由于windows的路径字符串带有特殊字符'\',boost:regex需要对此进行特殊处理,下面举例说明,分割字符串的正则表达式如下:

boost::regex reg("\\\\");

由于反斜杠对于c++字符和regex来说都是特殊字符,因而需要转义两次,才能正确执行。

完整代码如下:

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <boost/regex.hpp>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
         std::vector<std::string> vec;
         std::string s = "F:\\OtherProjects\\BasePlatForm\\C21\\SMC\\Backend\\Src";
         try
        {
              boost::regex reg("\\\\");
 
              boost::sregex_token_iterator it(s.begin(),s.end(),reg,-1);
              boost::sregex_token_iterator end;

while(it != end)
  {
   vec.push_back(*it++);
  }

}
        catch(boost::regex_error &err)
        {
              cout<<err.what()<<endl;
              cin.get();
              return 0;
         }
        catch(...)
       {
             cout<<"error"<<endl;
            cin.get();
            return 0;
        }
 
        assert(vec.size() == std::count(s.begin(),s.end(),'//')+1);

for(int i =0;i<vec.size();i++)
        {
             cout<<vec[i]<<endl;
         }

cin.get();
       return 0;
}

希望本文能给有同样问题的人,有点帮助~~~

boost:regex分割字符串(带有'\'字符) - zzusimon的专栏 - 博客频道 - CSDN.NET相关推荐

  1. javadoc时候乱码-编码 GBK 的不可映射字符 - wqjsir的专栏 - 博客频道 - CSDN.NET

    javadoc时候乱码-编码 GBK 的不可映射字符 - wqjsir的专栏 - 博客频道 - CSDN.NET 在eclipse中导出工程的doc时,有时会出现GBK的不可映射字符异常.这是应为我们 ...

  2. boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET

    boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET boost::crc_32_type crc32; crc32.process_by ...

  3. 编写字符串反转函数 - 小小外星人的技术博客 - 博客频道 - CSDN.NET

    编写字符串反转函数 - 小小外星人的技术博客 - 博客频道 - CSDN.NET 编写字符串反转函数 分类: 笔试面试题 2010-11-07 20:47 863人阅读 评论(0) 收藏 举报 首先用 ...

  4. 转载:利用正则表达式排除特定字符串 - 薰衣草的旋律 - 博客园

    转载:利用正则表达式排除特定字符串 - 薰衣草的旋律 - 博客园 https://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html 阅 ...

  5. boost 正则 分割字符串

    参考链接 正则30分钟 boost_regex boost.cc #include <iostream> #include <boost/regex.hpp>using nam ...

  6. C#中分割字符串输出字符数组

    C#中Split用法~ 1.用字符串分隔:  using System.Text.RegularExpressions; string str="aaajsbbbjsccc"; s ...

  7. C#网络编程(异步传输字符串) - Part.3[转自JimmyZhang博客]

    源码下载:http://www.tracefact.net/SourceCode/Network-Part3.rar C#网络编程(异步传输字符串) - Part.3 这篇文章我们将前进一大步,使用异 ...

  8. 如何设置省略号对其序号 html,html 用css实现table中超长字符串省略号表示 - 天天好心情 - 博客园...

    最近学习样式,想用样式来控制GridView中超长字符的省略显示,可是网上从后台的方式是在让我诟病,当然,个人喜好问题:P  由于GridView最终是Table形式输出,于是从table实现该样式找 ...

  9. 如何一次性复制带有markdown/mathjax/latex的博客内容

    现在人工智能越来越火爆,任何博客动不动就就要写一堆公式,无奈的是却没法一次性复制下来. 怎么办呢? 看到公式后右键选择MathML,如下: 然后一次性复制即可. 但是呢,上述方法有一个问题就是必须是对 ...

最新文章

  1. python发明者叫什么-编程语言简史:有人不喜欢花括号,于是他发明了 Python
  2. 【Linux开发】彻底释放Linux线程的资源
  3. mac php7 mysql 扩展_升级到php7和安装拓展(mac centos)
  4. AQS.transferForSignal
  5. 团队行为心理学读书笔记(6)沟通背后的行为心理学
  6. java语言中json转换,JSON字符串和JAVA语言对象的相互转换教程
  7. Eclpise 和 MyEclipse 的区别
  8. php 改变页面元素,动态更改网页HTML元素(对象)内容_经验交流
  9. 用jk触发器构成二分频电路_模拟电路,电子电路,二极管,放大电路
  10. 通过代码触发dropdownlist_SelectedIndexChanged事件。
  11. 关于Parse库的配置问题
  12. Excel 曝Power Query安全漏洞
  13. SAP中检验计划创建晚于检验批导致无法质检的问题分析处理
  14. 草图大师:SketchUp 2019 for Mac
  15. java逻辑删除代码_MyBatis-Plus之逻辑删除的实现
  16. speedoffice表格如何全选表格
  17. 自制BSL编程MSP430单片机
  18. 并行查询的执行计划解读
  19. 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  20. linux中清除git记住密码的方法

热门文章

  1. 大数据_Flink_Java版_数据处理_流处理API_Transform(3)_Reduce聚合算子---Flink工作笔记0031
  2. Vue_案例_初始化显示_采用组件化编写页面_实现组件间通信---vue工作笔记0022
  3. 关于HTML5中meta name=“viewport“ 的用法---web前端工作笔记014
  4. 基于Session的认证方式_实现会话功能_Spring Security OAuth2.0认证授权---springcloud工作笔记117
  5. WebStorm学习笔记001---webstorm-删除项目 两种方法
  6. maven 打包javadoc乱码解决方案
  7. lua调用shell 脚本
  8. mysql自动更新时间的触发器
  9. VC下ctreectrl的使用方法及节点前图标添加方法
  10. ftk学习记(滑动条篇)