Boost regex库 中的 split示例

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

//分开字符串

//编译方法: g++ -o reg_split -lboost-regex-gcc reg_split.cpp

#include <list>

#include <boost/regex.hpp>

unsigned tokenise(std::list<std::string>& l, std::string& s)

{

return boost::regex_split(std::back_inserter(l), s);

}

#include <iostream>

using namespace std;

#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && (__BORLANDC__ == 0x550))

//

// problem with std::getline under MSVC6sp3

istream& getline(istream& is, std::string& s)

{

s.erase();

char c = is.get();

while(c != '\n')

{

s.append(1, c);

c = is.get();

}

return is;

}

#endif

int main(int argc)

{

string s;

list<string> l;

do{

if(argc == 1)

{

cout << "Enter text to split (or \"quit\" to exit): ";

getline(cin, s);

if(s == "quit") break;

}

else

s = "This is a string of tokens";

unsigned result = tokenise(l, s);

cout << result << " tokens found" << endl;

cout << "The remaining text is: \"" << s << "\"" << endl;

while(l.size())

{

s = *(l.begin());

l.pop_front();

cout << s << endl;

}

}while(argc == 1);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有