C++正则表达式如何捕获所有匹配的部分?
//实际上没学过正则表达式,只是完成作业时想到的……比如输入"1,12,3,4,5,6,2,3,4,5",如何将所有数字提取出来?如果regexe("([^,]{1,})...
//实际上没学过正则表达式,只是完成作业时想到的……
比如输入"1,12,3,4,5,6,2,3,4,5",如何将所有数字提取出来?
如果regex e("([^,]{1,})");那么regex_search出来的肯定只有第一个……
当然,如果有不用正则的方法我也洗耳恭听。 展开
比如输入"1,12,3,4,5,6,2,3,4,5",如何将所有数字提取出来?
如果regex e("([^,]{1,})");那么regex_search出来的肯定只有第一个……
当然,如果有不用正则的方法我也洗耳恭听。 展开
1个回答
展开全部
#include<iostream>
#include<vector>
#include<string>
#include<regex>
#include <iterator>
int main()
{
std::string strng("1,12,3,4,5,6,2,3,4,5");
std::regex re(",");
std::sregex_token_iterator p(strng.begin(), strng.end(), re, -1);
std::sregex_token_iterator end;
std::vector<std::string> vec;
while (p != end)
vec.push_back(*p++);
std::copy(vec.begin(),vec.end(),std::ostream_iterator<std::string>(std::cout," "));
std::cout<<std::endl;
return 0;
}
这是针对你的代码用,来区分数字的
需要开启C++11的支持 编译选项添加 -std=c++11
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询