读书人

问一个C++ 的正则表达式有关问题

发布时间: 2012-06-01 16:46:36 作者: rapoo

问一个C++ 的正则表达式问题
头文件

C/C++ code
#ifdef WIN32#include <regex>#else#include <boost/regex.hpp>using namespace boost;#endif

函数定义
C/C++ code
int get_regex_lines(string& str, regex & reg, vector<string>& vline){    sregex_iterator end;    sregex_iterator iter_flight(str.begin(), str.end(), reg);    for(;iter_flight != end;++iter_flight)    {        for(int i=1;i<(*iter_flight).size();i++)        {            vline.push_back((*iter_flight)[i].str());        }            }    return vline.size();}int get_regex_lines(string& str, regex & reg, vector<string>& vline, vector<int> &vecpos){    sregex_iterator end;    sregex_iterator iter_flight(str.begin(), str.end(), reg);    for(;iter_flight != end;++iter_flight)    {        for(int i=1;i<(*iter_flight).size();i++)        {            vline.push_back((*iter_flight)[i].str());            vecpos.push_back((*iter_flight).position(i));        }            }    return vline.size();}


函数调用处
C/C++ code
regex exp("[1]{1}\\d{10}",regex::icase);    vector<string > vmobile;    get_regex_lines(textstr, exp, vmobile)

我想提取出手机号码放到 vmobile里面
我还想提取九位到十位的QQ号码 请问 正则表达式如何写

[解决办法]
\\d{9,10}这样就可以了

读书人网 >C++

热点推荐