[Boost]_[使用boost正则表达式查找所有字符串]


场景:

1.比如在html中查找出现过的<img>标签,好提取图片地址.

2.编译器不支持C++11标准时使用boost库是比较好的选择.


test_search.cpp

#include <stdio.h>
#include <string>
#include <iterator>
#include <boost/regex.hpp>
#include <iostream> 

using namespace std;

int main(int argc, char *argv[])
{
	std::string str("infoasdf123unil98oasdfa686^&*(432");
	boost::regex e1("[0-9]+");

	std::string::const_iterator start, end;
	start = str.begin();
	end = str.end();

	boost::match_results<std::string::const_iterator> what;
    boost::match_flag_type flags = boost::match_default;

    while(regex_search(start, end, what, e1, flags)) 
    {	
    	cout << "finded number: " << string(what[0].first,what[0].second) << endl;
    	start = what[0].second;
    }
	return 0;
}

//http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/ref/regex_search.html

输出:

finded number: 123
finded number: 98
finded number: 686
finded number: 432



参考:

http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/ref/regex_search.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peter(阿斯拉达)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值