问一个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}这样就可以了