需求:在一段HTML里寻找超级链接中(正文文本)域名。
例如HTML内容如下:
<div id="bdfs0" class="EC_im EC_fr EC_PP EC_idea1017 "><a id="dfs0" class="EC_t EC_BL" onmousedown="return c({'fm':'im','title':this.innerHTML,'url':this.href,'p1':1})" href="http://www.baidu.com/baidu.php?url=zx6K00KyXs40Q86kRjYK5CXfuZ-Yhk3pujbXdk6f0Ex7QN3XNuAjwnSYSbeIYBOzZw2ezRQDFiGIKgR5iDXyeTCNEPl_Mr-LmZ3fzxORWyM-pF2xYZEQkz-2sFQ3htQuFy5nr9Y.0b_a7hQwfHjHKUQYI3LHRrgDk3q5iGyAp7BEI3ded7.U1Yk0ZDqknLw8UQBzVHiksKY5THPYUhz3_oRY_T0pyYqnW0k0ATqTZPbIj00IybqTv7VgLN-gvPEUAqz0ZKGujYkrfKWpyfqPHR0UgfqnH0kPsKopHYs0ZFY5iYk0ANGujY1PHTsg1cLP1IxnHf1P7tzrH6sg1ndPjm0mhbqnHmk0AdW5Hn3n10YPHDv0Z7spyfqn0Kkmv-b5H00ThIYmyTqn0KEIhsq0A7B5HKxn0K-ThTqn0KsTjYs0A4vTjYsQW0snj0snj0s0AdYTjYs0ZFJ5H00uANv5gKW0ZwdT1YkPj6YPHcsnWnsPHcznjTvPWRsrfKBUjYs0APzm1Y1PjT3rf" target="_blank"><font color=#CC0000>耐压测试仪</font>-上海精密仪器仪..</a><br><a class="EC_BL EC_desc" href="http://www.baidu.com/baidu.php?url=zx6K00KyXs40Q86kRjYK5CXfuZ-Yhk3pujbXdk6f0Ex7QN3XNuAjwnSYSbeIYBOzZw2ezRQDFiGIKgR5iDXyeTCNEPl_Mr-LmZ3fzxORWyM-pF2xYZEQkz-2sFQ3htQuFy5nr9Y.0b_a7hQwfHjHKUQYI3LHRrgDk3q5iGyAp7BEI3ded7.U1Yk0ZDqknLw8UQBzVHiksKY5THPYUhz3_oRY_T0pyYqnW0k0ATqTZPbIj00IybqTv7VgLN-gvPEUAqz0ZKGujYkrfKWpyfqPHR0UgfqnH0kPsKopHYs0ZFY5iYk0ANGujY1PHTsg1cLP1IxnHf1P7tzrH6sg1ndPjm0mhbqnHmk0AdW5Hn3n10YPHDv0Z7spyfqn0Kkmv-b5H00ThIYmyTqn0KEIhsq0A7B5HKxn0K-ThTqn0KsTjYs0A4vTjYsQW0snj0snj0s0AdYTjYs0ZFJ5H00uANv5gKW0ZwdT1YkPj6YPHcsnWnsPHcznjTvPWRsrfKBUjYs0APzm1Y1PjT3rf" target="_blank" id="bdfs0" onmousedown="return c({'fm':'im','title':this.innerHTML,'url':this.href,'p1':1,'rsv_ct':'d'})"><font size="-1" >咨询热线:021-65730171.接地电阻<font color=#CC0000>测试仪</font>/接地电阻表,绝缘电阻<font color=#CC0000>测试仪</font>/绝缘电阻表,</font><br><font size="-1" class="EC_url">www.canytec.com.cn</font></a><span class="icons EC_PP"><a style="cursor:pointer;text-decoration:none;" href="http://trust.baidu.com/vcard/?id=ef6b817356c74744c2c8142179f321ba97010019&url=zx6K00KyXs40Q86kRjYK5CXfuZ-Yhk3pujbXdk6f0Ex7QN3XNuAjwnSYSbeIYBOzZw2ezRQDFiGIKgR5iDXyeTCNEPl_Mr-LmZ3fzxORWyM-pF2xYZEQkz-2sFQ3htQuFy5nr9Y.7b_a7hQwfHjHKUQYI3LHRrgDk3q5iGyAp7BEI3ded0.U1Yk0ZDqknLw8UQBzVHiksKY5THPYUhz3_oRY_T0pyYqnW0k0ATqTZPbIj00IybqTv7VgLN-gvPEUAqz0ZKGujYkrfKWpyfqPHR0UgfqnH0kPsKopHYs0ZFY5iYk0ANGujY1PHTsg1cLP1IxnHf1P7tzrH6sg1ndPjm0mhbqnHmk0AdW5Hn3n10YPHDv0Z7spyfqn0Kkmv-b5H00ThIYmyTqn0KEIhsq0A7B5HKxn0K-ThTqn0KsTjYs0A4vTjYsQW0snj0snj0s0AdYTjYs0ZFJ5H00uANv5gKW0ZwdT1YkPj6YPHcsnWnsPHcznjTvPWRsrfKBUjYs0APzm1Y1PjT3rf&dataTime=51" target="_blank" onmousedown="return c({'title':this.innerHTML,'url':this.href,'fm':'im','rsvMt':'1017','p1':'1'});" class="c-icon icon-certify c-icon-v efc-cert" data-renzheng="{title: '上海精密仪器仪表有限公司:',favorite: {fm: 'im',rsvMt: '',p1: '1',url: 'http://i.baidu.com/myfavorite/set?'},appraise: {fm: 'im',rsvMt: '',p1: '1',url: 'http://trust.baidu.com/womc/comt/?'},report: {fm: 'im',rsvMt: '',p1: '1',url: 'http://baozhang.baidu.com/guarantee/accu/?'},identity: {a: {fm: 'im',rsvMt: '1017',p1:'1',url: 'http://trust.baidu.com/vcard/?id=ef6b817356c74744c2c8142179f321ba97010019&dataTime=51'}, img: '',text: '',credit: '5'}}" data-tip-limite="true" data-tooltips="bc"></a> </span></div>
C++函数:
/* 功能:查找一段HTML代码中超级链接<a><font>xxx.com</font></a>第一个出现的域名【例:xxx.com等】 By Dewei 2013-10-22 用法: #include <boost/regex.hpp> std::string str_out; find_first_domain(".....", &str_out); 参数:原始HTML代码,输出找到的域名 返回:找到返回true,否则返回false */ bool find_first_domain(const std::string &str_src, std::string &str_out) { boost::regex expression("<a(.*?)href=\"([^\n\t\f\r \"]+?)\"([^>]*?)>(.*?)</a>", boost::regex::icase|boost::regex::perl); boost::smatch what_match; std::string::const_iterator const_iter = str_src.begin(); std::string::const_iterator const_iter_end = str_src.end(); str_out.clear(); while(boost::regex_search(const_iter, const_iter_end, what_match, expression)) { std::string str_all(what_match[0].first, what_match[0].second); std::string str_fordomain(what_match[4].first, what_match[4].second); //找到匹配的<a>xxxx</a> if (!str_fordomain.empty()) { boost::cmatch what_match; std::string hostname = "(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\\.)+(?:com|net|edu|biz|gov|asia|org|in(?:t|fo)|(?-i:[a-z][a-z]))"; boost::regex expression(hostname, boost::regex::icase|boost::regex::perl); if (boost::regex_search(str_fordomain.c_str(), what_match, expression)) { str_out.assign(what_match[0].first, what_match[0].second); return true; } } const_iter = what_match[0].second; } return false; }
相关推荐
《2017CEC测试函数与MATLAB代码解析》 在优化算法的研究与应用领域,CEC(Competition on Evolutionary Computation)测试函数集是一个重要的标准,它由每年的国际进化计算竞赛举办者发布,用于评估和比较各种优化...
LFM信号模糊函数Matlab代码,直接运行可用,参数可自行更改
unparam go get -u github.com/mvdan/unparam报告代码中未使用的函数参数。 为了最大程度地减少误报,它会忽略以下内容:未命名和下划线参数其签名与可达的函数类型unparam相匹配的funcs go -u github....
《精通Windows API函数接口编程实例源代码》是一个深入学习Windows API编程的重要资源,它涵盖了大量实践案例,旨在帮助开发者熟练掌握API接口的使用技巧。Windows API是微软为开发者提供的一个平台,通过它,程序员...
本示例探讨的是如何在C#(Csharp)中调用C++动态链接库(DLL)中的回调函数。这涉及到C++导出函数、C# P/Invoke技术以及C#委托的理解和应用。 首先,我们需要理解C++的DLL工作原理。DLL是一种可重用的代码库,它...
计算特定雷达发射信号模糊函数的matlab代码
3. **动态/静态链接**:根据API库的性质,可能需要动态链接(在运行时加载库)或静态链接(在编译时将库代码合并到可执行文件中)。 4. **初始化**:在使用API之前,通常需要进行初始化操作,比如打开设备、设置通信...
通过打开这个程序并加载要分析的DLL,可以显示函数调用图,看到每个函数的输入输出参数,以及它们在代码中的位置。 4. **depends22_x64**:这可能是Depends的一个特定版本或者针对64位系统的版本,因为"22"可能表示...
ARM NEON 查找手册,可以查找neon内建函数的功能以及入参和返回值类型; RVCT 提供在 ARM 和 Thumb 状态下为 Cortex-A8 处理器生成 NEON 代码的内在 函数。 NEON 内在函数在头文件 arm_neon.h 中定义。头文件既...
在本文中,我们将深入探讨如何使用Visual C++(VC++)和Visual Studio++(VS++)调用微软的蓝牙API函数。这些API函数允许开发者直接与蓝牙设备进行通信,实现各种无线连接功能。我们将主要关注如何在不同版本的VC++...
对于C/C++项目,函数关系图有助于揭示静态链接库和动态链接库中的函数交互,这对于理解和优化系统级代码至关重要。对于Java项目,它可以帮助开发者理解类与类之间的方法调用,对于理解和改进面向对象设计有极大的...
在编程世界中,保持代码整洁和格式化是至关重要的,这不仅有利于代码的可读性,也有助于团队协作和代码维护。针对JS(JavaScript)和HTML(超文本标记语言)这两种广泛使用的前端开发语言,有多种代码格式化工具可以...
4. **代码实现**:在C语言中,可以定义一个函数,接受角度作为输入,然后返回相应的三角函数值。这个函数首先将角度转换为弧度,接着找到最接近的两个表项,最后执行线性插值计算。 5. **性能优化**:为了进一步...
寻找峰值算法应用广泛,matlab...压缩包中包含matlab中的findpeaks()函数的所有输入参数说明、.m源码、详细导出步骤以及导出的c++源码。 注:findpeaks()函数只支持查找波峰,如果需要查找波谷,请先取反再调用该函数。
在本资源中,我们主要关注的是使用C++编程语言实现的“超级玛丽”游戏的源代码。C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、游戏开发、应用程序和嵌入式系统等。通过分析这个项目,我们可以学习到...
用matlab编写的dft函数代码。。。。。。。。。
同时,为了提高效率,可以预计算一些常见p值的伽马函数结果,并存储在查找表中。此外,利用复数分析中的解析延拓,还可以处理非实数输入。 文件名为"Gamma_Incomplete"的压缩包可能包含实现不完全伽马函数的源代码...
这个压缩包“OPENCV函数手册(中文).zip”显然是为中文用户提供的OpenCV函数参考手册,帮助开发者更好地理解和使用OpenCV中的各种函数。 OpenCV库的核心功能主要分为以下几个方面: 1. 图像处理:包括读取、写入...
S函数,全称为System Function,是Simulink中用于构建自定义模块的核心元素,它可以让我们用C、C++或者MATLAB代码来定义模型的数学行为。在本实例中,我们将探讨如何在Simulink中应用S函数来设计一个简单的连续系统...