C++11解析url

之前使用boost解析字符串,因为编译跨平台的boost比较麻烦,现在尝试使用C++11,效果一样,以下是一个解析url的简单demo


#include <iostream>
#include <regex>

int url2domain(const std::string &url, std::string &domain, unsigned &port)
{

	int ret = -1;

	//使用迭代器拆分字符串 http://www.cppprog.com/2009/0112/48.html
	std::regex reg_domain_port("/");  //按/符拆分字符串
	std::cregex_token_iterator itrBegin(url.c_str(), url.c_str() + url.size(), reg_domain_port, -1);
	std::cregex_token_iterator itrEnd;
	int i = 0;

	std::string domain_port;
	for (std::cregex_token_iterator itr = itrBegin; itr != itrEnd; ++itr)
	{
		i++;
		if (i == 3)
		{
			domain_port = *itr;
		}
	}

	if (domain_port.size() == 0)
	{
		domain_port = url;
	}

	//考虑带端口的情况
	std::regex reg_port(":");
	std::cregex_token_iterator itrBegin2(domain_port.c_str(), d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值