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

分类: C++ 2011-08-31 10:32 727人阅读 评论(0) 收藏 举报

          在实际的应用中,经常用到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

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

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

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

  3. Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET

    Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET Boost::Thread使用示例 分类: C/C++ 2011-07-06 14:48 5926 ...

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

    来自博客园 http://www.cnblogs.com/yugen/archive/2010/08/18/1802781.html   1.用字符串分隔: using System.Text.Reg ...

  5. 解决Boost.Regex对中文支持不好的问题

    解决Boost.Regex对中文支持不好的问题 - k.m.Cao - 博客频道 - CSDN.NET 解决Boost.Regex对中文支持不好的问题 k.m.Caov0.1   问题的提出: Boo ...

  6. C#利用substring按指定长度分割字符串

    这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我首先想到的是Split,但根据 ...

  7. C#按指定长度分割字符串

    C#按指定长度分割字符串   这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我 ...

  8. js如何处理字符串中带有↵字符

    js或vue中如何处理字符串中带有↵字符 split('\n') 使用split('\n')将字符串分割成数组就行 如果我们在vue中,只需要在页面中绑定变量时操作split('\n')就可以了: & ...

  9. c++分割字符串(类似于boost::split)

    由于c++字符串没有split函数,所以字符串分割单词的时候必须自己手写,也相当于自己实现一个split函数吧! 如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include ...

随机推荐

  1. Hadoop平台安装前准备

    集群配置 准备工作 1.  Iptables #chkconfig iptables –list #chkconfig iptables –level 3456off #service iptable ...

  2. r语言之条件、循环语句

    if条件语句:if (conditon) {expr1} else {expr2} > x<-1> if(x==1)+ {x<-"x=1"}else+ {x ...

  3. 启动(Startup)

    Startup Chrome是一个单一的可执行程序.它清楚如何运行其它进程. 下面是chrome启动的概述: 1. 首先,chrome有一个平台相关的入口点:在windows上是wWinMain(): ...

  4. 转:让ie6-8支持部分css3样式的方案

    我们都知道,IE浏览器暂不支持CSS3的一些属性.国外的工程师们,不安于此现状,他们总是尽量使用一些手段使IE浏览器也能支持CSS3属性,我觉得这些都是很有意义,很有价值的工作,可以推动整个技术领域的 ...

  5. android自动化(appium)

    目录 一.Appium环境搭建 1.下载nodejs,并安装 2.下载appium,并安装 3.安装python.安装pip.安装appium 4.安装java的jdk 5.安装andriod的sdk ...

  6. java学习之观察者设计模式

    package com.gh.observer; import java.util.Observable; /** * 被观察者对象 * 必须继承被观察者抽象类 * @author ganhang * ...

  7. ORA-00845 Oracle 启不来修改 MEMORY_TARGET

    1.内存减小导致Oracle启动不了   Last login: Sun Nov  4 15:09:06 2012 from 192.168.5.222  [oracle@h1 ~]$ sqlplus ...

  8. apache .htaccess文件详解和配置技巧总结

    一..htaccess的基本作用 .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令.       .htaccess主要的作用有:URL重写.自定义错误页面.MIME类 ...

  9. POJ 1692 Crossed Matchings(DP)

    Description There are two rows of positive integer numbers. We can draw one line segment between any ...

  10. java IO回想小结

    java IO原理 IO流用来处理设备之间的传输数据 输入(input):读取外部数据(磁盘.等存储设备)到程序() (内存)中 输出(output):将程序(内存)数据输出到磁盘等存储设备 java ...