C++11解析url
来源:互联网 发布:java接口自动化测试 编辑:程序博客网 时间:2024/06/05 15:57
之前使用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.htmlstd::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(), domain_port.c_str() + domain_port.size(), reg_port, -1);std::cregex_token_iterator itrEnd2;int j = 0;for (std::cregex_token_iterator itr = itrBegin2; itr != itrEnd2; ++itr){j++;if (j == 1){domain = *itr;}if (j == 2){port = std::stold(*itr);//itoa(port,*itr,5);;}}if (domain.size() == 0){domain = domain_port;}return ret;}std::string urls[] = {"hrbcyyzy-video.guisen.com.cn","hrbcyyzy-video.guisen.com.cn:80","http:://hrbcyyzy-video.guisen.com.cn","http:://hrbcyyzy-video.guisen.com.cn:80","http:://hrbcyyzy-video.guisen.com.cn/222","http:://hrbcyyzy-video.guisen.com.cn:80/222"};int main(){int ret = -1;std::string domain;unsigned int port = 0;for (int i = 0; i < 6; i++){url2domain(urls[i], domain, port);}return 0;}
阅读全文
0 0
- url解析c算法
- C语言解析url
- C语言 解析URL
- 使用C语言解析URL
- C++11解析url
- URL的解析,C语言实现
- C语言URL解析器(代码分享)
- 解析url
- URL解析
- URL解析
- 解析URL
- url解析
- url解析
- url解析
- 解析url
- 解析URL
- 解析url
- url解析
- maven的java项目中log4j的使用
- Smarty快速入门_1
- 《机器学习实战》之K—近邻算法实现手写体数字识别
- nohup 输出重定向 2015-10-20 12:25 7264人阅读 评论(0) 收藏 举报 http://moralistxp.blog.163.com/blog/static/1161103
- 总结ibatis与mybatis区别
- C++11解析url
- tp5在HTML上添加、修改、删除数据库
- intellij idea 忽略文件不提交
- 350. Intersection of Two Arrays II
- Integer相等判断
- SharePoint 2016:找不到 Project Web App 实例。请在访问此页面之前至少创建一个 PWA 实例。
- 深机笔记
- 常用数据库
- Connection closed by foreign host. Disconnected from remote host