boost库

本文介绍如何在VC++6.0环境下下载并编译Boost库中的正则表达式子库,并提供了配置环境及使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vc++6.0环境下的使用正则表达式的一些总结

1,如何下载boost库?

官方下载地址http://www.boost.org/,这里我选择下载boost_1_34_0.zip

2,如何编译boost库中的正则表达式的子库?

如果要全编译boost得花一两个小时,如果只选择编译boost中的正则表达式的子库,大概10分钟,遵照以下几个步骤可以编译boost中的正则表达式的子库:

    a) 开始 / 运行 / cmd

    b) 输入 / Microsoft Visual Studio / VC98 / Bin / VCVARS32.BAT,回车

    c) cd C:/boost_1_34_0/libs/regex/build   // 转到boost中的正则表达式的子库的目录

    d) 输入 nmake -fvc6.mak, 回车

经过以上步骤就能成功编译boost中的正则表达式的子库

3,如何设置vc6?

打开vc6,菜单 tools / options,在选项框内选择directories标签页

a) 在Show directories for 下选择 include files, 在Directories:下添加一个新的目录C:/BOOST_1_34_0

b) 在Show directories for 下选择 library files, 在Directories:下添加一个新的目录C:/boost_1_34_0/libs/regex/build/vc6

经过以上两步设置,就可以进行测试了,以下给出了示例

4,示例

//  示例1
#include  < string >  
#include 
< iostream >  
#include 
< boost / regex.hpp >  

int  main() 
      boost::regex reg(
"/d+"); 
      boost::smatch m; 
      std::
string str("my phone is 88886666 and age is 25"); 
      std::
string::const_iterator it = str.begin(); 
      std::
string::const_iterator end = str.end(); 
    
while(boost::regex_search(it, end, m, reg)) 
          std::cout 
<< m.str() << std::endl; 
          it 
= m[0].second; 
      }
 
      boost::regex my_reg(
"My", boost::regex::icase | boost::regex::perl); 
      std::
string res = boost::regex_replace(str, my_reg, "Solee's"); 
      std::cout 
<< res << std::endl; 
    
return 0
}


//  示例2
//  使用迭代器获取所有匹配
#include  < boost / regex.hpp >  
#include 
< iostream >  
#include 
< string >  
#include 
< algorithm >  
using   namespace  std; 

class  Show 
public:     
    template
<class T> 
    
void operator()(const T& t) 
         cout 
<< t.str() << endl; 
     }
 
}


int  main( int  argc,  char *  argv[]) 

     boost::regex reg(
"/d+"); 
     
string str("my num is 21314 and age is 26."); 
     boost::sregex_iterator it(str.begin(), str.end(), reg); 
     boost::sregex_iterator end; 
     for_each(it, end, Show()); 
    
return 0
}


//  示例3
//  实现一个字符串分割函数split.
#include 
< string >  
#include 
< iostream >  
#include 
< vector >  
#include 
< boost / regex.hpp >  
#include 
< boost / shared_ptr.hpp >  

using   namespace  std; 

template
< class  Tchar >  
boost::shared_ptr
<  vector < basic_string < Tchar >   >   >  split( const  basic_string < Tchar >&  t, 
                                                        
const  basic_string < Tchar >&  tokenStr) 
     boost::shared_ptr
< vector<basic_string<Tchar> > > pRtn =  
         boost::shared_ptr
< vector<basic_string<Tchar> > >(new vector<basic_string<Tchar> >); 
    
static const boost::basic_regex<Tchar, boost::regex_traits<Tchar> > reg(tokenStr); 
     boost::regex_token_iterator
<basic_string<Tchar>::const_iterator >  
         begin(t.begin(), t.end(), reg, 
-1); 
     boost::regex_token_iterator
<basic_string<Tchar>::const_iterator > end; 
    
while(begin != end) 
         pRtn
->push_back(*begin++); 
     }
 
     
    
return pRtn; 
}
 


int  main( int  argc,  char *  argv[]) 

     
string str("1,2,3,45,7"); 
     
string token(","); 
     boost::shared_ptr
< vector<string> > pVec = split(str, token); 
    
for(vector<string>::const_iterator it = pVec->begin();  
                             it 
!= pVec->end(); ++it) 
         cout 
<< *it << endl; 
     }
 
    
return 0
}
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值